#include <iostream>
using namespace std;
int main() {
long fact(int n){
if(n==1)
return 1;
return fact(n-1)*n
}
}

递归的条件不知为啥出错了?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- 追cium 2023-03-19 07:37关注
参考GPT和自己的思路:
您的代码存在几个问题:
1.将函数定义放在了main函数中,应该将其放在main函数外部。
2.在递归函数中,应该在递归的结束条件处返回结果(即n==1时返回1),而不是在递归的过程中返回1。
3.在递归返回时,应该将递归结果乘以n,而不是将n与递归结果相乘。下面是更正过的代码:
#include <iostream> using namespace std; long fact(int n){ if(n==1) return 1; return fact(n-1)*n; } int main() { cout << fact(5) << endl; return 0; }
这个函数将会计算5的阶乘并输出结果。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用