求大神解答

来源:5-7 递归函数(一)

我带你飞

2015-10-11 23:24

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

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

{

result=1;

}

为什么不是返回的result=1

写回答 关注

2回答

  • onemoo
    2015-10-11 23:42:22
    已采纳

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

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

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

    我带你飞

    非常感谢!

    2015-10-12 12:14:47

    共 1 条回复 >

  • 我带你飞
    2015-10-12 12:14:06

    非常感谢= =

C语言入门

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

924607 学习 · 20763 问题

查看课程

相似问题

求大神解答!

回答 3

求大神解答

回答 1

求大神解答

回答 2

求大神解答

回答 3

求大神解答

回答 3