对1000(较大数)阶乘的求法
平时我们遇到阶乘一般直接会用递归解决
ll function(int x){
if(x==2) return 2;
esle return x*function(x-1);
}
但是当数字大了后得学会换一种解法
void Slove(int x){
int num[3000]={0};///1000!大概3000位
int k=1;///尾部
int n=0;
int xy;
num[0]=1;
for(int i=2;i<=N;++i){
for(int j=0;j<k;++j){
int xy=num[j]*i+n;
num[j]=xy%10;
n=xy/10;
}
while(n){
num[k]=n%10;
k++;
n/=10;
}
}
for(int i=k-1;i>=0;--i){
printf("%d",num[i]);
}
return ;
}