Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 将数字除以2而不使用/_Function_Recursion_Division - Fatal编程技术网

Function 将数字除以2而不使用/

Function 将数字除以2而不使用/,function,recursion,division,Function,Recursion,Division,我需要帮助。 我需要创建一个递归函数,该函数接收一个“n”数并返回“n/2”,而不进行除法 编辑: 这是我写的,但它只有在除法后仍然是十进制数而不是浮点数时才起作用,这就是我问的原因 int recursive(int a, int b) { if ( a == (0.5 * b) ) return a; return recursive(a-1, b); } 递归解决方案的速度要慢得多,但这里有一个使用Python3实现正整数的方法 def divRecursive(a,

我需要帮助。 我需要创建一个递归函数,该函数接收一个“n”数并返回“n/2”,而不进行除法

编辑:

这是我写的,但它只有在除法后仍然是十进制数而不是浮点数时才起作用,这就是我问的原因

int recursive(int a, int b)
{ 
  if ( a == (0.5 * b) )
    return a;

  return recursive(a-1, b);
}

递归解决方案的速度要慢得多,但这里有一个使用Python3实现正整数的方法

def divRecursive(a,b):
    if a<b:
        return 0
    return 1+divRecursive(a-b,b)
def(a,b):

如果使用严格的整数除法,可以使用“右移”运算符。对于C风格语言,这用
>
表示。此函数起作用:
f(n)=n>>1
。请注意,这不是递归的。(为什么需要这样做?这更有效。)你所做的事情请首先分享,这不是“做我的工作现场”我知道不是,只是他们要求我递归地做,我尝试的方式不起作用,所以我出去寻求帮助:/顺便说一句,西蒙扎克,你所做的与我所要求的没有任何关系,我做了鲍里斯的作业,甚至没有得到任何感谢。我已经吸取了教训。因为它甚至没有接近我所需要的,它提供了一些无关的输出,但仍然很感谢