n!=1*2*3*4······n,具体来说1*2后再乘3再乘4,依次下去。
1.首先用循环的方式:
#include<stdio.h>
int main()
{
int n,i=1,jc=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//i的值不能从0开始,否则没有结果。
{
jc=jc*i;//相当于1*2后再1*2*3依次。
}
printf("%d\n",jc);
return 0;
}
2.递归
#include<stdio.h>
int nll (int p)
{
int n=1;
if(p!=0)
n=p* nll(p - 1);
if(p==0)//让递归停下的条件。不设置条件的话,会报错。
return n;
}
int main()
{
int n, b;
scanf("%d",&n);
b = nll(n);
printf("%d", b);
return 0;
}
注意,递归可以看作循环的逆过程(个人看法),因为返回的值是从最里面开始,而进入是从最外面。