这个代码看不懂

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

weixin_慕仔0029264

2020-02-22 09:07

result=factorial(n-1)*n;

return result;


写回答 关注

2回答

  • weixin_慕斯0079486
    2020-02-22 14:26:23
    已采纳

    这个就是调用自身

    在n是5的情况下,

    result=factorial(4)*5

    此时factorila(4)结果未知,继续将factorila(4)代入函数

    ,factorila(3)结果又是未知的,以此类推

    当n==1时,result结果为1,所以

    当n==5时:

    result=factorial(4)*5=factorial(3)*4*5=factorial(2)*3*4*5=factorial(1)*2*3*4*5=1*2*3*4*5=120


    qq_慕雪2... 回复慕虎9034...

    不会输出1的,你把它理解成一种嵌套,就和数学里的f(f(x)),factorial(4)里面包含了factorial(1)*2*3*4*5,而当n==1时,result结果为1,只是计算中的一步。

    2020-02-29 10:43:18

    共 4 条回复 >

  • weixin_慕少9328968
    2020-07-18 12:54:19

    进行四次递归调用后,实参的值为 1,会调用 factorial(1)。此时能够直接得到常量 1 的值,并把结果 return,就不需要再次调用 factorial() 函数了,递归就结束了

C语言入门

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

926212 学习 · 20797 问题

查看课程

相似问题