当我在循环中调用递归函数时遇到两个问题。考虑以下示例代码:
int fact(int x)
{
if(x == 1)
return 1;
return x*fact(x-1);
}
int main() {
int n = 2;
for(int i = 0; i < n; i++);
std::cout << fact(4) << std::endl; // 24 ??
return 0;
}
问题1:我对这个程序的预期结果是24 24
(两次24
是打印机),但实际结果我只得到了一个24
。
问题2:main()
即使我没有递归调用主函数,重复调用函数的原因是什么。
如果有人给我关于如何在循环内调用递归函数以获得多个输出的想法,那就太好了。