大数次乗-Nの次乗


題目1076:Nの階乗
時間制限:3秒
メモリ制限:128メガ
特殊問題:いいえ
コミット:924
解決:249
タイトルの説明:
正の整数Nを入力し、Nの乗算を出力します.
入力:
正の整数N(0<=N<=1000)
出力:
入力は複数組のデータを含むことができ、各組の入力データに対して、Nの乗算を出力する
サンプル入力:
4
5
15

サンプル出力:
24
120
1307674368000
#include "iostream"  
#include "stdio.h"  
#include "math.h"  
#include "vector"  
#include "queue"  
#include "memory.h"  
#include "algorithm"  
#include "string"  
using namespace std;  
int n;
int main()
{
	int a[10000];
	int i,j;
	while(scanf("%d",&n)!=EOF)
	{
		if(!n)
		{
			printf("1
"); continue; } memset(a,0,sizeof(a)); int len=1; a[1]=1; for(i=1;i<=n;i++) { for(j=1;j<=len;j++) a[j]*=i; for(j=1;j<=len;j++) { if(a[j]<10) continue; int pos=j; while (pos<=len) { if(a[len]>9) len++; a[pos+1]+=a[pos]/10; a[pos]%=10; pos++; } } } for(i=len;i>=1;i--) printf("%d",a[i]); cout<