c语言中怎么计算前20个数的阶乘和(初级编程高精度计算题)
时间限制: 1 Sec 内存限制: 128 MB
题目描述
已知正整数n(n<=100),设s=1! 2! 3! ... n!。其中“!”表示阶乘,求s。
输入
n
输出
s
样例输入 Copy
4
样例输出 Copy
33
V
V
V
V
V
V
V
V
解答:
#include<bits/stdc .h> using namespace std; short s[10005]; short ans[10005]; void jc(int n) { s[1]=1; int t=1; int x; for(int i=1;i<=n;i ) { x=0; for(int j=1;j<=t;j ) { s[j]=s[j]*i x; x=s[j]/10; s[j]%=10; if(x>0&&j==t) t ; } s[t 1]=x; } } int main(){ int n; cin>>n; int x; for(int j=1;j<=n;j ) { memset(s,0,sizeof(s)); jc(j); for(int i=1;i<=10000;i ) { ans[i] =s[i];//cout<<c[i]<<" "; if(ans[i]>=10) { ans[i 1] ; ans[i]=ans[i]; } } } int t1=10000; while(ans[t1]==0&&t1>1) t1--; for(int i=t1;i>=1;i--) { cout<<ans[i]; } return 0; }
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com