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; }