如果这factorial改成别的名字也有阶乘吗?
登陆购买课程后可参与讨论,去登陆吧
同学你好,factorial不是函数里默认阶乘,factorial只是一个函数名字,同学可以自定义函数名字的,并不是固定写法。函数内部调用自己,形成递归,这里的factorial(n-1)就是在函数的内部再次调用自己的意思。
祝学习愉快!
return n*factorial(n-1);这句也没循环啊?为何会逐一阶乘的?
同学你好,“ return n*factorial(n-1);”这是递归的写法,递归函数内部语句可以调用这个函数自身,从而发起对函数的一次迭代。在新的迭代中,又会执行函数自身的语句,从而有产生一次迭代。当执行到某一次时,也就是说满足递归出口条件,函数就不再进行新的迭代,函数则会被一层层的返回。
1、例如下图计算4的阶乘,首先调用factorial(4),参数n =4.返回值为4*factorial(3),但是这个返回值调用了函数factorial,那么就需要内层调用factorial执行完毕之后,第一次调用factorial才会返回具体的值。
2、调用factorial(3),factorial(3)返回值为3*factorial(2),然后执行完毕;
3、然后继续往下执行,调用factorial(2),factorial(2)的返回值为2*factorial(1),符合if判断条件,停止调用,最后输出结果。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
前端技术快速更迭,人才紧缺。带你从0基础开始,成为Web全栈工程师,转行就业更顺畅。
93 2
44 2
74 4
30 1
32 1
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星