给定一个数N,用函数返回阶乘结果
输入样例:
7
输出样例:
5040
#include<stdio.h>
int fun(int n)
{
if (n == 1)
return 1;
else
return n * fun(n - 1);
}
int main()
{
int n;
scanf("%d", &n);
printf("%d", fun(n));
return 0;
}
当输入n=7时,调用fun函数
fun(7) | return 7*fun(6),此处fun(6)再次调用 | fun(7)=7*120=5040 |
fun(6) | return 6*fun(5) | fun(6)=6*120=720 |
fun(5) | return 5*fun(4) | fun(5)=5*24=120 |
fun(4) | return 4*fun(3) | fun(4)=4*6=24 |
fun(3) | return 3*fun(2) | fun(3)=3*2=6 |
fun(2) | return 2*fun(1) | fun(2)=2*1=2 |
fun(1) | 此时的n=1,return 1,然后回归 | 回归fun(1)=1 |