問題描述 :
給你一個整數N(0 ≤ N ≤ 10000),你的任務是計算並輸出 N!
輸入說明 :
輸入多行,每行一個N。
輸出說明 :
對於每個輸入N,在一行中輸出N!
行首與行尾爲空格,兩組輸出之間無空行。
輸入範例 :
2
1
100
輸出範例 :
2
1
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
c源碼:
#include<stdio.h>
int main()
{
int n,a[100000],i,t,s,j,m;
while( scanf("%d",&n)!=EOF)
{ memset(a,0,sizeof(a));
a[0]=1;
s=1;
for(i=1;i<=n;i++)
{
for(j=0;j<s;j++)
a[j]=a[j]*i;//分別乘
for(j=0;j<s;j++)
{
a[j+1]=a[j+1]+(a[j]/10);//處理進位
a[j]=a[j]%10;
if(a[s]>0)//增最高位處理
s++;
}
}
for(i=s-1;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
return 0;
}