题目描述
给定两个正整数A和B,请你计算A * b的值
输入格式
共两行,第一行包含整数A,第二行包含整数b。
输出格式
共一行,包含A * b的值
提示
1 ≤ A的长度 ≤ 10^4, b ≤ 10^4
样例输入
4 5
样例输出
20
解析
A × b
10^4位 int
举个栗子:
A2 A1 A0 C0 =(A0×b)% 10 = 6
1 2 3 t1 = (A0×b) / 10 = 3
× 1 2 C1 = (A1×b + t1) % 10 = 7
---------------------- t2 = (A1×b + t1) / 10 = 2
C3 C2 C1 C0 C2 = (A2×b + t2) % 10 = 4
t3 = (A2×b + t2) / 10 = 1
C3 = t3 = 1
∴123*12=1476
话不多说,直接上代码:
#include <bits/stdc++.h>
using namespace std;
vector<int> v, ans;
int main () {
string a;
int b;
cin >> a >> b;
for (int i = a.size() - 1; i >= 0; i--) {
v.push_back(a[i] - '0');
}
int t = 0;
for (int i = 0; i < v.size(); i++) {
ans.push_back((v[i] * b + t) % 10);
t = (v[i] * b + t) / 10;
}
if (t) {
ans.push_back(t);
}
for (int i = ans.size() - 1; i >= 0; i--) {
cout << ans[i];
}
return 0;
}