大數乘法(板子)
阿新 • • 發佈:2019-02-06
#include<bits/stdc++.h> using namespace std; char a[10005],b[10005]; int x[10005],y[10005],z[20005]; int main() { int l1,l2,i,j,k; while(~scanf(" %s %s",a,b)) { memset(z,0,sizeof(z)); l1=strlen(a),l2=strlen(b); for(j=0,i=l1-1;i>=0;i--) x[j++]=a[i]-'0'; for(j=0,i=l2-1;i>=0;i--) y[j++]=b[i]-'0'; for(i=0;i<l1;i++) for(j=0;j<l2;j++) z[i+j]+=x[i]*y[j]; for(k=0;k<l1+l2-1;k++) if(z[k]>=10) { z[k+1]+=z[k]/10; z[k]%=10; } for(i=k;i>0;i--) { if(z[i]==0) continue; else break; } for(;i>=0;i--) printf("%d",z[i]); printf("\n"); } return 0; }