永发信息网

int fac(int n) {if(n==0||n==1) return 1; else return n*fac(n-1); } 则fac (5)的结果为是“120”吗?

答案:2  悬赏:20  手机版
解决时间 2021-03-18 09:22
  • 提问者网友:骨子里的高雅
  • 2021-03-17 12:09
int fac(int n) {if(n==0||n==1) return 1; else return n*fac(n-1); } 则fac (5)的结果为是“120”吗?
最佳答案
  • 五星知识达人网友:梦中风几里
  • 2021-03-17 12:29
fac (5)=5*fac (4)

fac (4)=4*fac (3)

fac (3)=3*fac (2)

fac (2)=2*fac (1)

fac (1)=1

依次代入,可得
fac (5)=5*4*3*2*1=120
全部回答
  • 1楼网友:梦中风几里
  • 2021-03-17 13:27
n=5 先进行if的判断 不等于0也不等于1 所以进入 else,n*fac(n-1)相当于调用了fac(n-1) 就是fac(4)
递归么 就一直递归下去
当n=1是 if成立 return 1
return 1*2
return 1*2*3
return 1*2*3*4
return 1*2*3*4*5
结束
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯