hdu1042

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define N 10000
int a[N];
int main()
{
int i,j,n,len;
while(scanf("%d",&n)!=-1)
{
memset(a,0,sizeof(a)); //初始化数组
a[0]=1; //注意:0!=1
len=1; //刚开始数组长度为一
for(i=1;i<=n;i++)
{
a[0]*=i;
for(j=1;j<len;j++)
{
a[j]*=i;
a[j]+=a[j-1]/N;
a[j-1]%=N;
}
while(a[len-1]>=N)
{
a[len]=a[len-1]/N;
a[len-1]%=N;
len++;
}
}
printf("%d",a[len-1]);
for(i=len-2;i>=0;i--)
printf("%04d",a[i]); //每个数组元素均应该占4位,不够的前面补零。
printf("\n");
}
return 0;
}

posted @ 2017-01-15 21:25  王坤1993  阅读(99)  评论(0编辑  收藏  举报