六六六六六九z
2021-12-11 20:11
为什么调用自身函数那里可以算阶乘,它不是只有两个数吗?就是factorial(n-1)*n这里,求大佬讲解
就是你在最下面给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,就算出了阶乘的值
C语言入门
926021 学习 · 20793 问题
相似问题