递归函数求阶乘问题在哪? 很简单的一个问题,一时半会头发懵想不明白

[复制链接]
查看11 | 回复2 | 2012-11-30 18:18:17 | 显示全部楼层 |阅读模式
递归就是调用自身,但递归必须要有结束语句,如下面段代码return 1就是结束语句,n*fac(n-1);就是调用自身,比如传个数5,实际结果就是:5*4*3*2*1,到达1就没有调用自身了,直接通过return 1,返回,最后通过return n*fac(n-1);把结果返回回去int fac(int n){ if(n==1){return 1; }else{return n*fac(n-1); }}...
回复

使用道具 举报

千问 | 2012-11-30 18:18:17 | 显示全部楼层
int fac(int n){int f;if(n=1) return 1;else return fac(n-1)*n;}你要懂得原理 fac(n-1)=fac(n-2)*(n-1)
fac(n-2)=fac(n-3)*(n-2)
...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行