求10000以内n的阶乘
具体的不用多说,就是高精度乘法,乘来乘去的,答案就出来了。
#include<iostream>
using namespace std;
int Ans[100000];
int main() {
int n,Lgt = 1;
scanf("%d",&n);
Ans[1] = 1;
for(int i = 2; i<=n; i++) {
int Rem = 0;
for(int j = 1; j<=Lgt; j++) {
Ans[j] *= i;
Ans[j] += Rem;
Rem = Ans[j] / 10;
Ans[j] %= 10;
}
while(Rem) {
Ans[++Lgt] = Rem % 10;
Rem /= 10;
}
}
for(int i = Lgt; i>=1; i--) {
printf("%d",Ans[i]);
}
return 0;
}