#include<iomanip>
#include<iostream>
#include<cmath>
#include<string>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<vector>
#include<stack>
#include<map>
#include<queue>
#include<utility>
#define ll long long
#define un unsigned
using namespace std;
struct Bignum{
int len,a[105];
Bignum(int x=0){
memset(a,0,sizeof(a));
for(len=1;x;len++) a[len]=x%10,x/10;
len--;
}
int &operator[](int i){
return a[i];
}
void flatten(int L){
len=L;
for(int i=1;i<=len;i++) a[i+1]+=a[i]/10,a[i]%10;
for(;!a[len];) len--;
}
void scanf(){
for(int i=1;i<=len;i++) cin>>a[i];
}
void print(){
for(int i=max(len,1);i>=1;i--) printf("%d",a[i]);
}
};
Bignum operator+(Bignum a,Bignum b){
Bignum c;
int len=max(a.len,b.len);
for(int i=1;i<=len;i++) c[i]+=a[i]+b[i];
c.flatten(len+1);
return c;
}
Bignum operator*(Bignum a,Bignum b){
Bignum c;
int len1=a.len,len2=b.len;
for(int i=1;i<=len1;i++){
for(int j=1;j<=len2;j++){
c[i+j]=a[i]*b[j];
}
}
c.flatten(len1+len2);
return c;
}
int main(){
Bignum a,b,ans;
a.scanf();
b.scanf();
ans=a*b;
ans.print();
return 0;
}
有人能帮忙调一下程序吗 重载运算符