为了账号安全,请及时绑定邮箱和手机立即绑定

递归函数

5a6350e40001d97105400960.jpg
请问这个程序是怎么运行的啊 能详细的解释一下过程吗

正在回答

2 回答

我是这么想的,既然你能理解factrial(5)运行到result=factorial(4)*5,是否可以理解从factorial(4)运行到result=factorial(3)*4?这时候我可以把它(result=factorial(4)*5)等价到(result=factorial(3)*4*5)。。。就这样重复。这个函数从main开始执行,到printf转到factorial执行完之后(即result=facorial(1)*120;result=120),return result;printf答案,结束。。。。。不知道想的对不对,只是我自己的理解,有机会你可以问一下高手们。

0 回复 有任何疑惑可以回复我~
#1

慕粉1239299916 提问者

嗯嗯 差不多明白了 那么从执行到结束 应该从return 1的时候开始 整个运算程序就结束了 剩下的就是打印输出了吧
2018-01-23 回复 有任何疑惑可以回复我~

这个程序,从main开始运行,调用factorial(5),到printf时,程序再到factorial(n)开始运行,n=5,取else,result=factorial(4)*5→result=factorial(3)*4*5..........result=factorial(1)*2*3*4*5→result=120,return result。。。。。。新手 自己的理解 希望有帮助

3 回复 有任何疑惑可以回复我~
#1

慕粉1239299916 提问者

其他的我都明白 但是从 result=factorial(4)*5 开始是怎么执行到result=factorial(3)*4*5的呢 执行完else以后 接下来的程序该从哪里执行啊
2018-01-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926018    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

递归函数

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信