Advertisement
Kaidul

Reverse and Add

Dec 25th, 2012
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. #include <algorithm>
  2. #include <cctype>
  3. #include <cstdio>
  4. #include <cstdlib>
  5. #include <cstring>
  6. #include <fstream>
  7. #include <iostream>
  8. #include <sstream>
  9. #include <string>
  10.  
  11.  
  12. using namespace std;
  13.  
  14. typedef long long int64;
  15. #define READ(f) freopen(f, "r", stdin)
  16. #define WRITE(f) freopen(f, "w", stdout)
  17.  
  18.  
  19. string stringToInt(int64 n) {
  20.     stringstream ss;
  21.     ss<<n;
  22.     return (ss.str());
  23. }
  24.  
  25. bool isPalindrom(int64 n) {
  26.     bool flag = true;
  27.     string s = stringToInt(n);
  28.     string::iterator begin = s.begin();
  29.     string::iterator end = s.end() - 1;
  30.     for(;begin < end; begin++, end--) {
  31.         if(*begin != *end) {
  32.             flag = false;
  33.             break;
  34.         }
  35.     }
  36.     return flag;
  37. }
  38.  
  39. int main() {
  40.     //READ("input.txt");
  41.     int64 number,testCase, temp, reverseNumber, sum, result;
  42.     cin>>testCase;
  43.     while(testCase--) {
  44.         cin>>number;
  45.         int counter = 0;
  46.         while(1) {
  47.              sum = 0;
  48.              temp = number;
  49.              reverseNumber = 0;
  50.              while(temp){
  51.                  reverseNumber *= 10;
  52.                  reverseNumber += (temp % 10);
  53.                  temp /= 10;
  54.              }
  55.              sum = number + reverseNumber;
  56.              counter++;
  57.              if(isPalindrom(sum)) {
  58.                  result = sum;
  59.                  break;
  60.              }
  61.              number = sum;
  62.  
  63.         }
  64.         cout<<counter<<" "<<result<<endl;
  65.     }
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement