查找函数的结果
|
有一个未知函数的代码:
function Magic(number)
r = number mod 2
print r
if number > 1
Magic(number / 2)
(用伪代码编写)
问题是:应该传递什么整数才能接收以下答案
0 1 1 0 0 1
主要问题是我无法弄清楚mod在伪代码中的工作方式。
5,5 mod 3 = 2.5还是2
没有找到相关结果
已邀请:
3 个回复
荒劫娇噬
但是,此问题的模式是该函数针对给定的输入数字返回REVERSE二进制数字。因此,在这种情况下,最简单的解决方案是将0 1 1 0 0 1取反为100110,然后计算该二进制数的值,即32 + 4 + 2 =38。使用这种方法,您可以计算任何给定输入的所需数量或预期输出。
谷起
输出结果:
这表明对于任何整数
都是6位结果result5ѭ是不可能的(由于输出字符串的单调增长)。但是,Magic(38)是
-带有所需字符串的前7位结果,但末尾还有零。 对于负整数值,仅2个可能的输出是\“ 0 \”和\“-1 \”。
肺鬼耙扮群
给您整数除法的余数。一些例子: 1 mod 2 = 1(因为整数除以1/2 = 0) 2 mod 2 = 0(2/2 = 1,无余数) 6 mod 3 = 0(6/3 = 2,无余数) 8 mod 3 = 2 小数部分可能应该忽略。在大多数语言中,它取决于数字的数据类型(如果两个操作数都是整数,则某些语言会进行整数除法,这可能也是您应该执行的操作,因此5/2 = 2)。 关于第一个问题(扰流板警报!,请在阅读本指南之前先尝试一下!),从头开始,并在每个步骤中乘以2。如果该步骤中的数字应为
,则还要加1。 因此,最后一步是1.从
开始: 1个 1 * 2 = 2 2 * 2 = 4 4 * 2 + 1 = 9 等等。我可以给您正确的答案,但我认为最好自己尝试一下;-)