Advertisement
Guest User

UVA-713-Adding Reversed Number

a guest
Oct 31st, 2014
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3. #include<cstring>
  4.  
  5. using namespace std;
  6.  
  7.  
  8.  
  9. string reverse(string a){
  10.                     int i,j;
  11.                     string b="";
  12.                     for(j=a.length()-1;j>=0;j--)
  13.                         b+=a[j];
  14.                     return b;
  15.                     }
  16. string add(string n1, string n2){
  17.                                 int i,j,x,y,sum,s;
  18.                                 string result="";
  19.                                 string a,b,final_result;
  20.                                 int carry=0;
  21.                                 a=rev(n1);
  22.                                 b=rev(n2);
  23.                                 for(i=0;i<a.length();i++)
  24.                                     {
  25.                                     if(i<b.length())
  26.                                             {
  27.                                             x=a[i]-'0';
  28.                                             y=b[i]-'0';
  29.                                             sum=x+y+carry;
  30.                                             s=sum%10;
  31.                                             result+=s+'0';
  32.                                             carry=0;
  33.                                             if(sum>9) carry=1;
  34.                                             if(i==a.length()-1 && carry==1)
  35.                                                 result+='1';
  36.                                             }
  37.                                     else {
  38.                                          x=a[i]-'0';
  39.                                          sum=carry+x;
  40.                                          s=sum%10;
  41.                                          result+=s+'0';
  42.                                          carry=0;
  43.                                          if(sum>9) carry=1;
  44.                                             if(i==a.length()-1 && carry==1)
  45.                                                 result+='1';
  46.                                          }
  47.                                     }
  48.                                 final_result=rev(result);
  49.                                 return final_result;
  50.                                 }
  51.  
  52. int main()
  53. {
  54.     int n;
  55.     cin>>n;
  56.     while(n--)
  57.     {
  58.         int zero=0,k=0,i;
  59.         string num1, num2;
  60.         cin>>num1>>num2;
  61.         string result=rev(add(rev(num1),rev(num2)));
  62.  
  63.  
  64.          for(i=0;i<=result.length()-1;i++)
  65.          {
  66.              if(result[i]=='0')
  67.              zero++;
  68.          }
  69.          for(i=zero;i<result.length();i++)
  70.          cout<<result[i];
  71.          cout<<endl;
  72.  
  73.     }
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement