永发信息网

C语言递归,f=ff(n-1)*n;是如何计算的?怎么也想不通求高手指点

答案:2  悬赏:0  手机版
解决时间 2021-04-15 13:33
C语言递归,f=ff(n-1)*n;是如何计算的?怎么也想不通求高手指点
最佳答案
程序中给出的函数ff是一个递归函数。主函数调用ff 后即进入函数ff执行,如果n<0,n==0或n=1时都将结束函数的执行,否则就递归调用ff函数自身。由于每次递归调用的实参为n-1,即把n-1的值赋予形参n,最后当n-1的值为1时再作递归调用,形参n的值也为1,将使递归终止。然后可逐层退回。
下面我们再举例说明该过程。设执行本程序时输入为5,即求5!。在主函数中的调用语句即为y=ff(5),进入ff函数后,由于n=5,不等于0或1,故应执行f=ff(n-1)*n,即f=ff(5-1)*5。该语句对ff作递归调用即ff(4)。
进行四次递归调用后,ff函数形参取得的值变为1,故不再继续递归调用而开始逐层返回主调函数。ff(1)的函数返回值为1,ff(2)的返回值为1*2=2,ff(3)的返回值为2*3=6,ff(4)的返回值为6*4=24,最后返回值ff(5)为24*5=120。
全部回答
好深奥啊!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
intel(r)core(tm)2duocpue7300@2.66ghz 的中
浅表性胃炎怎么断根啊
在网络里有真的爱情吗??
不同种类用英语怎么说,英语怎么说记录它们的
作文 姐弟情深
沈阳有没有婚纱摄影工作室或者是婚纱影楼的团
桥头餐馆(冬茅西路)在什么地方啊,我要过去处
如果一个男孩对你说这句话,这是什么意思啊?
一只蝴蝶,被折断了翅膀,可它还是飞走了,为什
大话2魔练法黄金整么学技能和上坐骑?
高筋面粉可以做包子吗
遇见你伤了我自己-翻译成英文
如何用96%的工业酒精知趣无水乙醇
清镇市亚华汽车维修有限公司在什么地方啊,我
梦幻西游90DT用的普通的刀要多少钱
推荐资讯
AVA怎么还没有公测?还是用QQ号进吗?
单词接龙的英文怎么说
手机宠物怎么 挣钱
怎么把电脑的磁盘驱动器改成光驱驱动器?
关于家庭的英语格言
沙漠灰有个看全图的BUG在哪?
一ASP网页制作题
拉卡拉收款宝和即付宝哪个正规
屈臣氏佳惠华盛堂百货店地址在哪,我要去那里
南宁哪有卖鞋粉的啊
金山毒霸充值怎么弄
野生龙舌草去哪里挖?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?