预测以下程序的输出
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