求帮助
洛谷1303题
A*B Problem 题目描述 给出两个非负整数,求它们的乘积。 输入格式 输入共两行,每行一个非负整数。 输出格式 输出一个非负整数表示乘积。 样例 1 样例输入 1 1 2 样例输出 1 2 提示 每个非负整数不超过 10^2000
我的代码入下
#include <cstring>
using namespace std;
char s[110];
int a[2001], b[2001], c[4050];
int la, lb, lc;
int main() {
cin >> s;
la = strlen(s);
for (int i = 0; i < la; i++)
a[i] = s[la - i - 1] - '0';
cin >> s;
lb = strlen(s);
for (int i = 0; i < lb; i++)
b[i] = s[lb - i - 1] - '0';
lc = 0;
for (int i = 0; i < 210; i++)
c[i] = 0;
for (int i = 0; i < la; i++) {
for (int j = 0; j < lb; j++) {
c[i + j] += a[i] * b[j];
if(c[i + j] >= 10){
c[i + j + 1] += c[i + j] / 10;
c[i + j] %= 10;
}
}
}
lc = la + lb;
if (c[lc] - 1 < 0)
lc++;
while (lc > 1 && c[lc - 1] == 0)
lc--;
for (int i = lc - 1; i >= 0; i--)
cout << c[i];
return 0;
}```