14:求10000以内n的阶乘
14:求10000以内n的阶乘
- 总时间限制:
- 5000ms
- 内存限制:
- 655360kB
- 描述
-
求10000以内n的阶乘。
- 输入
- 只有一行输入,整数n(0<=n<=10000)。
- 输出
- 一行,即n!的值。
- 样例输入
-
100
- 样例输出
-
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
- 来源
- JP06
-
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 using namespace std; 6 int a[1000001]={1}; 7 int ans[10000001]={1}; 8 char n[1001]; 9 int en[1001]; 10 int main() 11 { 12 int n; 13 cin>>n; 14 int lans=1; 15 int x=0; 16 for(int i=1;i<=n;i++) 17 { 18 19 for(int j=0;j<lans;j++) 20 { 21 a[j]=a[j]*i+x; 22 x=a[j]/10; 23 if(x>0&&j==lans-1) 24 lans++; 25 a[j]=a[j]%10; 26 } 27 } 28 int flag=0; 29 for(int i=lans;i>=0;i--) 30 { 31 if(a[i]==0&&flag==0) 32 continue; 33 else flag=1; 34 cout<<a[i]; 35 } 36 return 0; 37 }
作者:自为风月马前卒
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。