模板:高精度求积

 1 #include<iostream>
 2 #include<string>
 3 #include<cstring>
 4 using namespace std;
 5 int a[100005],b[100005],c[100005];
 6 int main(){
 7     string s1,s2;
 8     cin>>s1>>s2;
 9     if(s1[0]=='0' || s2[0]=='0'){
10         cout<<0;
11         return 0;
12     }
13     int l1=s1.size(), l2=s2.size();
14     memset(a,0,sizeof(a));
15     memset(b,0,sizeof(b));
16     memset(c,0,sizeof(c));
17     for(int i=0;i<=l1-1;i++)
18         a[l1-i]=s1[i]-'0';
19     for(int i=0;i<=l2-1;i++)
20         b[l2-i]=s2[i]-'0';
21         int i,k=0,d,e,j;
22     for(i=1;i<=l2;i++)
23     {
24         k=0;
25         for(j=1;j<=l1;j++)
26         {
27             c[i+j-1]=a[j]*b[i]+c[i+j-1];
28             k=c[i+j-1]/10;
29             c[i+j-1]%=10;
30             c[i+j]+=k;
31         }
32     }
33     k=l1+l2;
34     for(int j=l1+l2;j>=2;j--)
35     if(c[j]!=0) break;
36     else k--;
37     for(int j=k;j>=1;j--)
38         cout<<c[j];
39     return 0;
40 }
"Hello World!"
原文地址:https://www.cnblogs.com/Aze-qwq/p/9337805.html