rt,最后一个不知道为何过不去
#include <iostream>
#include <cstring>
using namespace std;
int A[110],B[110],C[110],D[220];
char strA[110],strB[110];
inline void add(){
for (int i=0;i<110;++i){
C[i] += A[i] + B[i];
if (C[i] >= 10){
++C[i + 1];
C[i] -= 10;
}
}
}
inline void mul() {
for (int i=0;i<110;++i){
for (int j=0;j<=i;++j) D[i] += C[j] * C[i-j];
if (D[i] >= 10){
D[i + 1] += D[i] / 10;
D[i] %= 10;
}
}
}
int main(){
scanf("%s",strA),scanf("%s",strB);
for (int i=0;i<strlen(strA);++i) A[strlen(strA)-i-1] = strA[i] - '0';
for (int i=0;i<strlen(strB);++i) B[strlen(strB)-i-1] = strB[i] - '0';
add(),mul();
int idx=219;
for (;idx>=0;--idx) if (D[idx]) break;
for (;idx>=0;--idx) cout << D[idx];
cout << endl;
return 0;
}