SHARE
TWEET

Untitled

a guest Nov 16th, 2019 92 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. class bigInt{
  8. private:
  9.     vector<int> digits;
  10. public:
  11.     bigInt(){
  12.         digits.push_back(0);
  13.     }
  14.     explicit bigInt(string s){
  15.         for(int i=0; i<=s.length()-1; i++){
  16.             digits.push_back(s[i]-'0');
  17.         }
  18.     }
  19.  
  20.     bigInt multiply(bigInt & op1, bigInt & op2){
  21.         bigInt C;
  22.         for(int k=1; k<op1.digits.size()+op2.digits.size(); k++){
  23.             C.digits.push_back(0);
  24.         }
  25.         for(int i=op2.digits.size()-1; i>=0; i--){
  26.             int carry = 0;
  27.             int carry2 = 0;
  28.             for(int j=op1.digits.size()-1;j>=0; j--){
  29.                 int pos = i+j+1;
  30.                 //cout << pos << endl;
  31.                 int res = op1.digits[j]*op2.digits[i]+carry;
  32.                 int res2 = C.digits[pos] + res%10 + carry2;
  33.                 C.digits[pos] = res2;
  34.                 //C.digits.insert(C.digits.begin()+pos, res2%10);
  35.                 if(res2>=10){
  36.                     carry2=res2/10;
  37.                 }
  38.                 else{ carry2=0; }
  39.                 if(j==0&&res2>=10){
  40.                     C.digits[pos-1] = carry2;
  41.                 }
  42.                 if(res>=10){
  43.                     carry=res/10;
  44.                 }
  45.                 else{ carry=0; }
  46.             }
  47.         }
  48.         return(C);
  49.     }
  50.  
  51.     void print(){
  52.         int x = digits.size()-1;
  53.         for(int i = 0; i<=x; i++){
  54.             cout << digits[i];
  55.         }
  56.     }
  57. };
  58.  
  59. int main(){
  60.     bigInt op1("576");
  61.     bigInt op2("6");
  62.     bigInt result;
  63.     result = result.multiply(op1,op2);
  64.     result.print();
  65. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top