NOI
/
1.6编程基础之一维数组
14:求10000以内n的阶乘
- 查看
- 提交
- 统计
- 提问
总时间限制:
5000ms
内存限制:
655360kB
描述
求10000以内n的阶乘。
输入
只有一行输入,整数n(0<=n<=10000)。
输出
一行,即n!的值。
样例输入
100
样例输出
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
JP06
- 查看
- 提交
- 统计
- 提问
#include<iostream> using namespace std; int main() { int n,a,fac[50000],ans[50000]={1,1}; cin >> n; for(int i=1; i<=n; i++){ for (int j=1;j<=ans[0];j++){ ans[j] = ans[j]*i+fac[j]; fac[j] = 0; if (ans[j] >= 10){ fac[j+1] += ans[j]/10; ans[j] %= 10; if (j==ans[0]) ++ans[0]; } } } for (int i=ans[0]; i>0; i--) cout << ans[i]; cout << endl; return 0; }