1 条题解
-
0
C++ :
#include<iostream> #include<algorithm> using namespace std; const int N = 100000; int a[N],b[N]; void addfact(int n,int a[],int b[]){ fill(a,a+N,0); fill(b,b+N,0); a[0]=a[1]=b[0]=1; for (int i=1; i<=n; i++) { for (int j=1; j<=a[0]; j++) a[j]*=i; for (int j=1; j<=a[0]; j++) { a[j+1]+=a[j]/10; a[j]%=10; } while (a[a[0]+1]) { a[0]++; a[a[0]+1]=a[a[0]]/10; a[a[0]]%=10; } b[0]=a[0]>b[0]?a[0]:b[0]; for (int j=1; j<=b[0]; j++) { b[j]+=a[j]; b[j+1]+=b[j]/10; b[j]%=10; } while (b[b[0]+1]) { b[0]++; b[b[0]+1]=b[b[0]]/10; b[b[0]]%=10; } } } void output(int a[]){ for (int i=a[0]; i>=1; i--) cout<<a[i]; cout<<endl; } int main(){ int n; cin>>n; addfact(n,a,b); output(b); return 0; }
- 1
信息
- ID
- 804
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者