时间限制: 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; }
,