n0va_sa

long string add.

Apr 2nd, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.10 KB | None | 0 0
  1. /* this code can add two 50 digit number that mean 100000000000000000000009991 + 1088888888888214124 */
  2. //Just increase the array length size//
  3. #include <iostream>
  4. #include <string>
  5. using namespace std;
  6. int getnum(char c_num){
  7.   int res = c_num - '0';
  8.   return res;
  9. }
  10. void print_array(int *arr,int len){
  11.   for(int i = 0;i<len;i++){
  12.     cout << arr[i] << "  ";
  13.   }
  14.   cout << endl;
  15.   return;
  16. }
  17. int find_small(int a,int b){
  18.   if(a < b) return a;
  19.   return b;
  20. }
  21. int main(){
  22.   int first_arr,sec_arr;
  23.   cout << "First Array Len:";cin >> first_arr;
  24.   cout << "Second Array Len:";cin >> sec_arr;
  25.   cout << "Enter Your First Array:";char a_arr[10],b_arr[10];
  26.   cin >> a_arr;
  27.   cout << "Enter your Second Array:";
  28.   cin >> b_arr;
  29.   int a[10],b[10],sum[20];
  30.   for(int i = 0;i<first_arr;i++){
  31.     a[i] = getnum(a_arr[i]);
  32.   }
  33.   for(int i = 0;i< sec_arr;i++){
  34.     b[i] = getnum(b_arr[i]);
  35.   }
  36.   cout << "int arr_a = ";print_array(a,first_arr);cout << "\n\n";
  37.   cout << "int arr_b = ";print_array(b,sec_arr);cout << "\n\n";
  38.   int g ,flag = 0,sm;
  39.   if(first_arr == sec_arr){
  40.     g = first_arr;
  41.     flag = 1;
  42.   }
  43.   else if (first_arr > sec_arr ){
  44.     g = first_arr;
  45.   }
  46.   else g = sec_arr;
  47.   sm = find_small(first_arr,sec_arr);
  48.   int j,k,r,c,s,q,temp;
  49.   for(j = first_arr-1, k = sec_arr-1,r=0;g > 0;j--,k--,r++,g--,sm--){
  50.     cout << "a[i] = " << a[j] <<"b[i] = " << b[k] << "sm = " << sm;
  51.     if(sm > 0){
  52.         s = a[j] + b[k];
  53.     } else{
  54.       s = a[j];
  55.     }
  56.     cout << " s = " << s;
  57.     cout << " j = " << j << " k = " << k << " r = " << r << " greatest = " << g<<endl;
  58.     if (s > 9){
  59.       q = s%10;temp = s/10;
  60.       a[j-1] = a[j-1] + temp;
  61.       sum[r] = q;
  62.       if (g == 1){sum[++r] = temp;}
  63.     }
  64.     else sum[r] = s;
  65.   }
  66.   print_array(sum,r);
  67.   cout << "Rev === == \n\n";
  68.   /*Rev THE ARRAY*/
  69.   for(int i = r-1;i >= 0;i--){
  70.     cout << sum[i];
  71.   }
  72.   //
  73.   cout << endl;
  74. }
  75.  
  76. /*output */
  77. 1.give the first array length big or equal to the second array length.
  78. 2.dont forget to increase the array size of the code.
  79. 3.contactthedead1998@gmail.com //=> if you want me to modify the code
Add Comment
Please, Sign In to add comment