问答详情
源自:5-7 递归函数(一)

调用自身函数算阶乘

为什么调用自身函数那里可以算阶乘,它不是只有两个数吗?就是factorial(n-1)*n这里,求大佬讲解

提问者:六六六六六九z 2021-12-11 20:11

个回答

  • weixin_慕盖茨2597418
    2022-02-09 11:06:47

    就是你在最下面给n赋值为5,那么调用函数之后就变成了result=factorial(5-1)*5,函数在计算的时候发现了自己,函数就只能调用了自己,factorial(5-1)就重新从factorial这个函数的头开始判断和计算,因为4>0且4不等于0和1,所以factorial(4)又等于factorial(4-1)*4,然后此时result=factorial(4-1)*4*5,然后函数又发现了自己,再次调用自身,一直进行阶乘,直到result=factorial(2-1)*2*3*4*5,这时factorial(2-1)=1,而1是个常数,也就相当于函数停止了对于自己的调用,此时result=1*2*3*4*5=120,就算出了阶乘的值