48 求N!

問題描述 :

給你一個整數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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章