Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
173613 | B班-陈曦 | 高精度阶乘 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 522 | 2024-08-20 22:10:07 |
#include <bits/stdc++.h> using namespace std; int s[40000]= {0,1},len=1; void Mul(int i){ int a=0; for(int j=1;j<=len;j++) { s[j]=s[j]*i+a; if(s[j]>=10) { a=s[j]/10; s[j]%=10; } else a=0; } while(a>0) { s[++len]=a; a=s[len]/10; s[len]%=10; } } int main() { int n; cin>>n; for(int i=1;i<=n-1;i+=2) Mul(i*(i+1)); if(n&1) Mul(n); printf("%d!=",n); for(int i=len;i>=1;--i) printf("%d",s[i]); return 0; }