Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- string the_multiplier(string num1, string num2)
- {
- string result[num2.size()], final_result = "";
- //the multiplication
- for(int i = 0; i < num2.size(); i++)
- {
- int carry = 0;
- for(int j = 0; j < num1.size(); j++)
- {
- int mul = (num2[i] - '0') * (num1[j] - '0');
- mul += carry;
- carry = mul / 10;
- mul = mul % 10;
- result[i] += mul + '0';
- }
- if(carry) result[i] += carry + '0';
- reverse(result[i].begin(), result[i].end());
- result[i].insert(0, num2.size() - 1 - i, '0');
- for(int k = 0; k < i; k++)
- {
- result[i] += "0";
- }
- }
- int carry = 0, siz = result[0].size() - 1;
- for(int i = siz, sum = 0; i >= 0; i--)
- {
- sum = 0;
- for(int j = 0; j < num2.size(); j++)
- {
- sum += result[j][i] - '0';
- }
- sum += carry;
- carry = sum / 10;
- sum = sum % 10;
- final_result += sum + '0';
- }
- if(carry) final_result += carry + '0';
- reverse(final_result.begin(), final_result.end());
- return final_result;
- }
- int main()
- {
- string num1 = "34523423", num2 = "777";
- if(num1.size() <= num2.size()) swap (num1, num2);
- reverse(num1.begin(), num1.end());
- reverse(num2.begin(), num2.end());
- cout << the_multiplier(num1, num2);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement