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

求大神解答

觉得最后结果不是应该result=1吗?为什么会是120,最后不是进入了这个条件语句了?

else if(n==0||n==1)

{

result=1;

}

为什么不是返回的result=1

正在回答

2 回答

递归是在函数中再次调用自己,也就是层层调用。

最后一次调用factorial——也就是最深的那次调用——肯定是进入这个判断分支了,会返回1。但并不是返回给main中的num,这个1会返回给前一次调用的factorial函数。 然后这层层调用会依次将返回值返回给调用者,直到返回至最早的那次factorial函数调用,再返回给main中的num。

更具体的说明请看这里我的回答: http://www.imooc.com/qadetail/90499

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

我带你飞 提问者

非常感谢!
2015-10-12 回复 有任何疑惑可以回复我~

非常感谢= =

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

举报

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

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

进入课程

求大神解答

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