提交时间:2026-07-20 21:26:04

运行 ID: 214532

#include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; int main() { string a, b; cin >> a >> b; int la = a.size(), lb = b.size(); vector<int> res(la + lb, 0); // 从低位到高位逐位相乘 for (int i = la - 1; i >= 0; i--) { for (int j = lb - 1; j >= 0; j--) { int mul = (a[i] - '0') * (b[j] - '0'); int p1 = i + j, p2 = i + j + 1; // p1为高位,p2为低位 int sum = mul + res[p2]; res[p2] = sum % 10; res[p1] += sum / 10; } } // 转为字符串,跳过前导零 string ans = ""; int i = 0; while (i < res.size() && res[i] == 0) i++; while (i < res.size()) ans += to_string(res[i++]); if (ans.empty()) ans = "0"; cout << ans << endl; return 0; }