Files
python/C++专题课程/基础知识/高精度阶乘.cpp

31 lines
493 B
C++
Raw Normal View History

2025-08-30 18:35:01 +08:00
#include<bits/stdc++.h>
using namespace std;
int main() {
long i,j, n,len=0,p;
long a[10000]= {0};
a[0]=1;
scanf("%ld",&n);
//һ<><D2BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>
for(i=1; i<=n; i++) {
//ÿһλ<D2BB><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i
for(j=0; j<=len; j++)
a[j]*=i;
p=0;
//<2F><><EFBFBD><EFBFBD>ÿһλ
while(p<=len) {
//ÿ<>ν<EFBFBD>һλ
if(a[len]>9) {
len++;
}
a[p+1]+=a[p]/10;//ȡ<><C8A1><EFBFBD><EFBFBD>λ
a[p]=a[p]%10; //ȡ<>ౣ<EFBFBD><E0B1A3>
p++;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for(i=len; i>=0; i--)
printf("%ld",a[i]);
return 0;
}