求大神给个C语言大数阶乘的程序,要有注释的!

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/19 12:47:05
求大神给个C语言大数阶乘的程序,要有注释的!

求大神给个C语言大数阶乘的程序,要有注释的!
求大神给个C语言大数阶乘的程序,要有注释的!

求大神给个C语言大数阶乘的程序,要有注释的!
对于求大整数的阶乘,可以采用分段相乘的方法,其理论基础是加法的分配律,乘法的分配律.
for exmaple :123456789*123=123*(123*10^5+56789)=123*123*10^5+123*56789;
如果我们用一个数组result[0]=56789,result[1]=123,那么123456789*123就是123*result[0]%10^6和result[1]*123+result[0]/10^6构成的一个数,另result[0]=123*result[0]%10^6,result[1]=result[1]*123+result[0]/10^6,则这个数就是result[1]result[0];
#include
int main()
{
int n,j,i,t,p;
int result[16000];
while(scanf("%d",&n)!=EOF){
t=p=0;result[0]=1; //t记录result中所存数的个数
for(j=1;j=0;i--)
printf("%05d",result[i]);//s[i]不足5位,说明需补0 也说明result[i]在对100000取余的时候去掉了前导0,所以这里要加上
printf("\n");
}
return 0;
}