看起来挺简单的...思路就是用数组来表示数的每一位...模拟竖式计算...要我自己再写遍肯定好多问题...这个得再练练...
#include<stdio.h>
#include<string.h>
int a[100000];
int main(){
int i,j,t;
int n;
int m;
while(~scanf("%d",&n))
{
t=1;
memset(a,0,sizeof(a));
a[0]=1;
for(i=1;i<=n;i++){
m=0;
for(j=0;j<t;j++){
a[j]=a[j]*i+m;
m=a[j]/10;
a[j]=a[j]%10;
if(m&&t<=j+1)
t++;
}
}
for(i=t-1;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
return 0;
}