//递归---求n的阶乘
//n的阶乘就是1~n的数字累计相乘
//n!=n*(n-1)!
//当n=0时,n的阶乘为1
Fact(int n)//传参穿过来一个n
{
if (n == 0)
return 1;
else if (n > 0)
return n * Fact(n - 1);//就是n*(n-1)!
}
int main()
{
int n = 0;
scanf_s("%d", &n);
int r = Fact(n);//n的阶乘
printf("%d\n",r);
return 0;
}
//当输入数字是5的时候,n传上去的n是5,因为n>0,所以进行n * Fact(n - 1)、
//也就是n*(n-1)! 5*4!
//然后一次进行下去
//到最后,Fact(1)=1*Fact(0),因为Fact(0)=1,所以Fact(1)=1
//Fact(2)=2
//Fact(3)=6
//Fact(4)=24
//Fact(5)=120
//先递推再回归
11-17
9219
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-29
1万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-23
1788
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-15
2674
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-11
585
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-19
6212
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-18
8066
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-28