法一()递归用法:
#include<stdio.h>
int f(int k);
int main()
{
int n,s;
while(scanf("%d",&n)!=EOF)
{
s=f(n);
printf("%d\n",s);
}
return 0;
}
int f(int k)
{
int m;
if(k==0||k==1)
return 1;
else if(k>1)
m=k*f(k-1);
return m;
}
法2(一般法):
#include<stdio.h>
int main()
{
int n,i,t,s=1;
while(scanf("%d",&n)!=EOF)
{
if(n==0||n==1)
printf("%d\n",s);
else if(n>1)
{
t=1;
for(i=1;i<=n;i++)
t=t*i;
printf("%d\n",t);
}
}
return 0;
}