思路很简单,主要是中间的乘法部分,注意进位的地方,不一定进位是一,所以你加进位的时候要注意加的是c[i]/10,而不能只加1哦
来看看计算阶乘部分的代码
cout<<"n="<<n<<endl;
for(int i=0;i<=lenc;i++){
c[i]*=n;
}
// cout<<"c[0]="<<c[0]<<endl;
for(int i=0;i<=lenc;i++){
if(c[i]>=10){
c[i+1]+=c[i]/10;//就是这里,加的时候要注意
c[i]%=10;
if(i==lenc) lenc++;
}
}
n--;
}
感觉这几天已经比较熟悉高精度计算了,还需努力