#include <stdio.h>
int sum(int i)
{
int result;
if(i<0)
{
printf("%s\n","输入错误!");
return 0;
}
else if(i==0 || i==1)
{
result = 1;
}
else
{
result = i*sum(i-1);
}
printf("%d\n",result);
return result;
}
int main()
{
int i = 5;
printf("和为%d\n",sum(i));
return 0;
}
运行结果
1
2
6
24
120
阶乘顺序为何不是倒着输出?
对于递归函数,我们是先一步一步的加进去的,所以当我们输出时应当先从后面输出。毕竟我们在前面算时都是个函数,有未知数,当到最后后有值了,于是一个一个输出来。便出现了一个从正着输出的现象。可以看下一节的图,很有道理,不行就用编译器,单步执行。希望能帮你。