转载http://blog.csdn.net/yxnk:模拟大数乘法,将结果的每5位存在数组a[]中,以提高运算速

来源:互联网 发布:金融行业指的是 知乎 编辑:程序博客网 时间:2024/04/29 14:55

模拟大数乘法,将结果的每5位存在数组a[]中,以提高运算速度。
 

 1 #include<iostream>
 2 const int N = 100000;
 3 int main(){
 4     int i,j,n,a[10000];
 5     while(scanf("%d",&n)!=EOF){
 6         memset(a,0,sizeof(a));
 7         for(a[0]=j=1;j<=n;j++){
 8             for(i=0;i<10000;i++) a[i]*=j;
 9             for(i=0;i<9999;i++)
10                 if(a[i]>=N){
11                     a[i+1]+=a[i]/N;
12                     a[i]%=N;
13                 }
14         }
15         for(i=9999;i>=0;i--)
16             if(a[i]) break;
17         printf("%d",a[i]);
18         for(j=i-1;j>=0;j--) printf("%05d",a[j]);
19         printf("/n");
20     }
21     return 0;
22 }
原创粉丝点击