A × B problem
题目描述
给出两个非负整数,求它们的乘积。
输入格式
输入共两行,每行一个非负整数。
输出格式
输出一个非负整数表示乘积。
输入输出样例
输入
1
2
输出
2
说明/提示
每个非负整数不超过 10的2000次方。
这题需要用高精度乘法来做
高精度乘法模板:
void chengfa(string s1, string s2) {
long long a[3005] =
int len1, len2, len, x;
len1 = s1.size();
len2 = s2.size();
for (int i = 0; i < len1; i ++) {
a[len1 - i] = s1[i] - '0';
}
for (int i = 0; i < len2; i ++) {
b[len2 - i] = s2[i] - '0';
}
for (int i = 1; i <= len1; i ++) {
x = 0;
for (int j = 1; j <= len2; j ++) {
c[i + j - 1] = a[i] * b[j] + x + c[i + j - 1];
x = c[i + j - 1] / 10;
c[i + j - 1] %= 10;
}
c[i + len2] = x;
}
len = len1 + len2;
while (c[len] == 0 && len > 1) {
len --;
}
for (int i = len; i >= 1; i--) {
cout << c[i];
}
return ;
}