算法|递归|问题8

预测以下程序的输出

null

#include <stdio.h>
int f( int n)
{
if (n <= 1)
return 1;
if (n%2 == 0)
return f(n/2);
return f(n/2) + f(n/2+1);
}
int main()
{
printf ( "%d" , f(11));
return 0;
}


(A) 堆栈溢出 (B) 3. (C) 4. (D) 5. 答复: (D) 说明: 在连续递归中,F(11)将分解为 F(5)+F(6)->F(2)+F(3)+F(3) ->F(1)+2*[F(1)+F(2)]->1+2*[1+F(1)] -> 1 + 2 * (1 + 1) -> 5.

因此,选项D是正确答案,即5。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享