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