[模板]大整数乘法——累加型

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define N 10000
 5 
 6 int main()
 7 {  
 8     char a[N],b[N];
 9     int aa[N],bb[N],mul[N];
10     memset(aa,0,sizeof(aa));
11     memset(bb,0,sizeof(bb));
12     memset(mul,0,sizeof(mul));
13     gets(a);
14     gets(b);
15     int i,j,l1=strlen(a),l2=strlen(b);
16     for(i=l1-1,j=0;i>=0;i--)
17         aa[j++]=a[i]-'0';
18     for(i=l2-1,j=0;i>=0;i--)
19         bb[j++]=b[i]-'0';
20     for(i=0;i<l1;i++)
21         for(j=0;j<l2;j++)
22             mul[i+j]+=aa[i]*bb[j];
23     for(i=0;i<N;i++)
24         if(mul[i]>=10){
25             int re=mul[i]/10;
26             mul[i]%=10;
27             mul[i+1]+=re;
28         }
29     bool f=false;
30     for(i=N-1;i>=0;i--){
31         if(mul[i]!=0)
32             f=true;
33         if(f)
34             printf("%d",mul[i]);
35     }  
36     if(!f)
37         printf("0");
38     printf("
");
39     return 0;
40 }
41 /*
42 3388495837466721394368393204672181522815830368604993048084925840555281177
43 11658823406671259903148376558383270818131012258146392600439520994131344334162924536139
44 
45 395058745832651445264197678006144819960207764603049364541393760515793556265
46 2945068360972784246821953509354430587049025199565533571020979922648497794944295
47 5603
48 */
正因为是最弱,所以才理解智慧之强
原文地址:https://www.cnblogs.com/Yanick/p/11234274.html