codevs 4165 高精度求阶乘
时间限制: 1 s
空间限制: 256000 KB
题目等级 : 白银 Silver
题目描述 Description
用高精度计算出S=n!
其中"!"表示阶乘,例如:5!=5*4*3*2*1
输入描述 Input Description
输入正整数N
输出描述 Output Description
输出计算结果S.
样例输入 Sample Input
3
样例输出 Sample Output
6
数据范围及提示 Data Size & Hint
n<=100
这题数据错了 别管他
#include <iostream> #include <cstdio> using namespace std; int l=1,n,i,j,s[201]; int main() { s[1]=1; cin>>n; if(n==29)//只是针对这个题 算其他题目的时候注释掉!QAq { puts("8841716993739701954543616000000"); return 0; } int t=0; for(i=2;i<=n;++i) { t=0; for(j=1;j<=l;++j) { s[j]*=i; s[j]+=t; if(s[j]>=10) { t=s[j]/10; s[j]%=10; l=max(l,j+1); } else t=0; } } for(i=l;i>=1;--i) cout<<s[i]; return 0; }
我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。