提交时间:2023-10-06 11:04:08

运行 ID: 105374

#include<bits/stdc++.h> using namespace std; const int maxn=5010; int a[maxn],b[maxn],c[maxn],al,bl,cl; string sa,sb; bool f; inline void add() { cl=max(al,bl); for(int i=1;i<=cl;++i) { c[i]=c[i]+b[i]+a[i]; if(c[i]>=10) c[i+1]=1, c[i]-=10; } while(cl>1 && c[cl]==0) cl-=1; if(c[cl+1]>0) cl+=1; } inline void miu(bool f) { if((al<bl) || (al==bl && a[al]<b[al])) { for(int i=1;i<=bl;++i) swap(a[i],b[i]); swap(al,bl); f=1; } cl=al; for(int i=1;i<=al;++i) { c[i]=a[i]-b[i]; if(c[i]<0) a[i+1]-=1, c[i]+=10; } while(cl>1 && c[cl]==0) cl-=1; if(f) c[cl]=-c[cl]; } inline void mul() { cl=max(al,bl); for(int i=1;i<=cl;++i) { c[i]=c[i]+b[i]*a[i]; if(c[i]>=10) c[i+1]=c[i]/10, c[i]%=10; } while(cl>1 && c[cl]==0) cl-=1; if(c[cl+1]>0) cl+=1; } int main() { getline(cin,sa); al=sa.size(); getline(cin,sb); bl=sb.size(); for(int i=0;i<al;++i) a[i+1]=sa[al-i-1]-'0'; for(int i=0;i<bl;++i) b[i+1]=sb[bl-i-1]-'0'; // add(); // miu(); mul(); for(int i=cl;i>=1;--i) cout<<c[i]; return 0; }