非递归
#include<stdio.h>
long jiecheng(int n)
{ int t=1;
if(n<0)
return -1;
else if(n==0)
return 1;
else{
for( int i=1;i<=n;i++)
t=t*i;
return t;
}
}
int main()
{
int n;
scanf("%d",&n);
int s=jiecheng(n);
printf("%d的阶乘为%ld\n",n,s);
return 0;
}
递归:
#include<stdio.h>
long jiecheng(int n)
{
if(n==0||n==1)
return 1;
else
return n*jiecheng(n-1);
}
int main()
{
int n;
scanf("%d",&n);
int t;
t=jiecheng(n);
printf("%d的阶乘为%d\n",n,t);
return 0;
}