#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无用
悬赏问题
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改