📅  最后修改于: 2023-12-03 15:12:40.751000             🧑  作者: Mango
如下是一个函数 foo()
的实现,请问该函数的输出结果是什么?
void foo(int n) {
if (n > 1) {
foo(n/2);
foo(n/2);
}
cout << "*" << endl;
}
可以发现 foo()
函数的递归调用中,每次都将 n
除以 2,直到 n=1
时,进行一次输出。因此,该函数相当于将 n
不断二分,直到 n=1
时,输出单个星号 *
。
当输入参数为 6 时,函数 foo()
的输出结果为:
*
*
*
输出的三个星号 *
表示在将 6 不断二分成 3、1 两个数的同时,共进行了三次输出。