#include <iostream> #include<vector> #include<string> #include<algorithm> using namespace std; int main() { string s,t; cin >> s >> t; reverse(s.begin(),s.end()); reverse(t.begin(),t.end()); int m = s.size(),n = t.size(); //采用无进位相乘,相乘结果放在两个数的下标之和的位置 vector<int> tmp(m + n); for(int i = 0;i < m;i++) { for(int j = 0;j < n;j++) { tmp[i + j] += (s[i] - '0') * (t[j] - '0'); } } //处理进位 int c = 0; string ret; for(auto x : tmp) { c += x; ret += (c % 10) + '0'; c /= 10; } while(c) { ret += c % 10 + '0'; c /= 10; } //处理前导零 while(ret.size() > 1 && ret.back() == '0') ret.pop_back(); reverse(ret.begin(),ret.end()); cout << ret << endl; return 0; }