当前编程题:实验三 大数、枚举问题(16级)---求大整数的阶乘
8. 问题描述 给定一个大整数,计算其阶乘。 输入形式 一行,仅含一个小于100的整数N。 输出形式 N的阶乘。 样例输入 20 样例输出 2432902008176640000 #include<iostream> #include<string.h> using namespace std; int main() { int n; cin>>n; int aa[100000]; memset(aa,0,sizeof(aa)); aa[0]=1; int k=1,i,j; for(i=1;i<=n;i++) { for(j=0;j<k;j++) { aa[j]=aa[j]*i; } for(j=0;j<k;j++) { if(aa[j]>=10) { aa[j+1]+=aa[j]/10; aa[j]=aa[j]; } } if(aa[j]>0) { k++; if(aa[j]>=10) { aa[j+1]+=aa[j]/10; aa[j]=aa[j]; k++; if(aa[j+1]>=10) { aa[j+2]+=aa[j+1]/10; aa[j+1]=aa[j]; k++; } } } } for(i=0;i<k;i++) { cout<<aa[k-1-i]; } cout<<endl; }