http://ac.jobdu.com/problem.php?cid=1040&pid=60
-
题目描述:
-
输入一个正整数N,输出N的阶乘。
-
输入:
-
正整数N(0<=N<=1000)
-
输出:
-
输入可能包括多组数据,对于每一组输入数据,输出N的阶乘
-
样例输入:
-
4 5 15
-
样例输出:
-
24 120 1307674368000
// 题目61:N的阶乘.cpp: 主项目文件。
#include "stdafx.h"
#include <cstdio>
#include <cstring>
const int N=1003;
int aa[N];
int size;
void mul(int n)
{
int in=0;
for(int i=0;i<size;i++)
{
int temp=aa[i]*n+in;
aa[i]=temp%10000;
in=temp/10000;
}
if(in!=0)
aa[size++]=in;
}
void print()
{
printf("%d",aa[size-1]);
for(int i=size-2;i>=0;i--)
printf("%04d",aa[i]);
printf("\n");
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
aa[0]=1;
size=1;
for(int i=2;i<=n;i++)
mul(i);
print();
}
return 0;
}