P1303 A*B Problem 高精度乘法
复习了一下高精乘
#include<bits/stdc++.h> using namespace std; const int maxn=1e6+7; char a1[maxn],b1[maxn]; int a[maxn],b[maxn],c[maxn*10],lena,lenb,lenc,x; int main() { scanf("%s",a1); scanf("%s",b1); lena=strlen(a1); lenb=strlen(b1); for(int i=0;i<lena;i++) a[lena-i]=a1[i]-'0'; for(int i=0;i<lenb;i++) b[lenb-i]=b1[i]-'0'; for(int i=1;i<=lena;i++) { x=0; for(int j=1;j<=lenb;j++) { c[i+j-1]=a[i]*b[j]+x+c[i+j-1]; x=c[i+j-1]/10; c[i+j-1]%=10; } c[i+lenb]=x; } lenc=lena+lenb; while(c[lenc]==0&&lenc>1) lenc--; for(int i=lenc;i>=1;i--) cout<<c[i]; return 0; }