Advertisement
Josif_tepe

Untitled

Oct 23rd, 2021
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. string add_big_integer(string A, string B) { // funkcija koja ke ni sobere A + B
  5.     if(A.size() < B.size()) {
  6.         swap(A, B);
  7.     }
  8.     int a_i = (int) A.size() - 1;
  9.     int b_i = (int) B.size() - 1;
  10.     int carry = 0;
  11.     string sum = "";
  12.     while(a_i >= 0 and b_i >= 0) {
  13.         int digit_a = (A[a_i] - '0');
  14.         int digit_b = (B[b_i] - '0');
  15.         int zbir = digit_a + digit_b + carry;
  16.        
  17.         if(zbir <= 9) {
  18.             sum += (zbir + '0');
  19.             carry = 0;
  20.         }
  21.         else {
  22.             carry = 1;
  23.             zbir -= 10;
  24.             sum += (zbir + '0');
  25.         }
  26.         a_i--;
  27.         b_i--;
  28.     }
  29.     while(a_i >= 0) {
  30.         int digit_a = (A[a_i] - '0');
  31.         int zbir = digit_a + carry;
  32.         if(zbir <= 9) {
  33.             sum += (zbir + '0');
  34.             carry = 0;
  35.         }
  36.         else {
  37.             carry = 1;
  38.             zbir -= 10;
  39.             sum += (zbir + '0');
  40.         }
  41.         a_i--;
  42.     }
  43.     if(carry == 1) {
  44.         sum += "1";
  45.     }
  46.     reverse(sum.begin(), sum.end());
  47.     return sum;
  48. }
  49. int main()
  50. {
  51.     string a, b;
  52.     cin >> a >> b;
  53.     cout << add_big_integer(a, b) << endl;
  54.     return 0;
  55. }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement