作业帮 > 综合 > 作业

sum+=n * factorial(n-1); 这一步函数递归调用的思路

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/13 21:40:06
sum+=n * factorial(n-1); 这一步函数递归调用的思路
int factorial(int n)
{
int sum=0;
if(n==1)
sum=1;
else
sum+=n * factorial(n-1);
return sum;
}
void main()
{
int i=5;
printf("5's factorial is %d\n",factorial(i));
}
sum+=n * factorial(n-1); 这一步函数递归调用的思路
第1次:factorial(5)
sum += 5 * factorial(4)
第2次:factorial(4)
sum += 4 * factorial(3)
第3次:factorial(3)
sum += 3 * factorial(2)
第4次:factorial(2)
sum += 2 * factorial(2)
第5次:factorial(1)
sum = 1
第4次:factorial(2)
sum += 2 * 1 = 2
第3次:factorial(3)
sum += 3 * factorial(2) = 3 * 2 = 6
第2次:factorial(4)
sum += 4 * factorial(3) = 4 * 6 = 24
第1次:factorial(5)
sum += 5 * factorial(5) = 5 * 24 = 120