Advertisement
barmidrol

long multiplication

Sep 2nd, 2015
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. const int MAX_SIZE = 500; // максимальная длина произведения
  8.  
  9. int main() {
  10.     int c[MAX_SIZE] = {};
  11.     string num1, num2;
  12.     cin >> num1 >> num2;
  13.     reverse(num1.begin(), num1.end());
  14.     reverse(num2.begin(), num2.end());  
  15.     int length = num1.size() + num2.size() + 1;
  16.    
  17.     for (int i = 0; i < num1.size(); i++)
  18.         for (int j = 0; j < num2.size(); j++) {
  19.             c[i + j] += (int(num1[i]) - 48) * (int(num2[j]) - 48);
  20.         }
  21.     for (int i = 0; i < length; i++) {
  22.         c[i + 1] += c[i] / 10;
  23.         c[i] %= 10;
  24.     }
  25.     while (c[length] == 0) length--;
  26.     while (length >= 0) cout << c[length], length--;
  27.     cout << endl;
  28.     return 0;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement