# Palindrome Solution | CodeChef [Easy]

Problem

A simple recursive method to generate a numeric palindrome from any number is to reverse its digits and add it to the original. If the sum is not a palindrome (which means, it is not the same number from left to right and right to left), repeat this procedure. For example for 195:

195 + 951 = 786
786 + 687 = 1473
1473 + 3741 = 5214
5214 + 4125 = 9339 – Resulting palindrome

Your task is to write a program that gives the resulting palindrome and the number of iterations (additions) to compute it.

###### Input

The first line will have a number N with the number of test cases, the next N lines will each have a number P to compute its palindrome

###### Output

For each of the N numbers you will have to write a line with the minimum number of iterations (additions) to get to the palindrome and the resulting palindrome separated by one space.

###### Constraints
• 1 <= N ≤ 2000
• 1 <= P ≤ 4,294,967,295
###### Sample Input
3
195
265
750
###### Sample Output
4 9339
5 45254
3 6666
###### Solution

Code Implementation

//
//  main.cpp
//  Palindrome
//
//  Created by Himanshu on 19/02/22.
//

#include <iostream>
using namespace std;
typedef long long ll;

ll reverseNum (ll num) {
ll revnum=0, dgt;

while(num>0) {
dgt = num%10;
num = num/10;
revnum = revnum*10+dgt;
}

return revnum;
}

int main() {
int T;
ll a, b, sum, sumTemp;

cin>>T;

while (T--) {
int ctr = 1;

cin>>a;

b = reverseNum(a);
sum = a+b;
sumTemp = reverseNum(sum);

while (sumTemp != sum) {
a = sum;
b = sumTemp;
sum = a+ b;
sumTemp = reverseNum(sum);
ctr++;
}

cout<<ctr<<" "<<sum<<endl;
}
return(0);
}