高精度乘法
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int main() 5 { 6 string s1,s2; 7 int a[2009]={0}; 8 int b[2009]={0}; 9 int c[2000009]={0}; 10 cin>>s1>>s2; 11 int len1=s1.length(); 12 int len2=s2.length(); 13 for(int i=1;i<=len1;i++) 14 a[i]=s1[len1-i]-'0'; 15 for(int i=1;i<=len2;i++) 16 b[i]=s2[len2-i]-'0'; 17 for(int i=1;i<=len1;i++) 18 { 19 for(int j=1;j<=len2;j++) 20 { 21 c[i+j-1]+=a[i]*b[j]; 22 c[i+j]+=c[i+j-1]/10; 23 c[i+j-1]%=10; 24 } 25 } 26 int len=len1+len2+1; 27 while((c[len]==0)&&len>1)len--; 28 for(int i=len;i>=1;i--)cout<<c[i]; 29 }