fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3.  
  4. using namespace std;
  5.  
  6. string mul(string a, int b) {
  7. reverse(a.begin(), a.end());
  8. int r = 0; // số dư
  9. string ans = ""; // kết quả
  10. for (int i = 0; i < a.size(); i++) {
  11. int d = (a[i] - '0') * b + r; // tích từng chữ số với b từ phải sang trái và thêm nhớ
  12. r = d / 10; // nhớ bằng kết quả chia 10
  13. ans += (char)(d % 10 + '0'); // thêm số vừa tính được vào kết quả
  14. }
  15.  
  16. // thêm phần dư
  17. while (r) {
  18. ans += (char)(r % 10 + '0');
  19. r /= 10;
  20. }
  21.  
  22. reverse(ans.begin(), ans.end()); // đưa kết quả về đúng thứ tự
  23.  
  24. return ans; // trả về kết quả
  25. }
  26.  
  27. signed main() {
  28. ios_base::sync_with_stdio(0);
  29. cin.tie(0); cout.tie(0);
  30.  
  31. // nhập dữ liệu
  32. string a; cin >> a;
  33. int b; cin >> b;
  34.  
  35. // kiểm tra số âm
  36. int pos = 1;
  37. if (a[0] == '-') pos ^= 1, a.erase(0, 1);
  38. if (b < 0) pos ^= 1, b = -b;
  39.  
  40. // xuất dữ liệu
  41. if (!pos) cout << '-' << mul(a, b) << '\n';
  42. else cout << mul(a, b) << '\n';
  43. return 0;
  44. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout