The reverse and add function starts with a number, reverses its digits, and adds the reverse to the original. If the sum is not a palindrome, repeat this procedure until it does.

Write a program that takes number and gives the resulting palindrome (if one exists). If it took more than 1,000 iterations (additions) or yield a palindrome that is greater than 4,294,967,295, assume that no palindrome exist for the given number.

Examples:

```Input : 195
Output : 9339

Input : 265
Output: 45254

Input : 196
Output : No palindrome exist

```

## C++

 `// C++ Program to implement reverse and add function ` `#include ` `using` `namespace` `std; ` ` `  `/* Iterative function to reverse digits of num*/` `long` `long` `reversDigits(``long` `long` `num) ` `{ ` `    ``long` `long` `rev_num = 0; ` `    ``while` `(num > 0) ` `    ``{ ` `        ``rev_num = rev_num*10 + num%10; ` `        ``num = num/10; ` `    ``} ` `    ``return` `rev_num; ` `} ` ` `  `/* Function to check whether he number is palindrome or not */` `bool` `isPalindrome(``long` `long` `num) ` `{ ` `    ``return` `(reversDigits(num) == num); ` `} ` ` `  `/* Reverse and Add Function */` `void` `ReverseandAdd(``long` `long` `num) ` `{ ` `    ``long` `long` `rev_num=0; ` `    ``while` `(num <= 4294967295) ` `    ``{ ` `        ``// Reversing the digits of the number ` `        ``rev_num = reversDigits(num); ` ` `  `        ``// Adding the reversed number with the original ` `        ``num = num + rev_num; ` ` `  `        ``// Checking whether the number is palindrome or not ` `        ``if` `(isPalindrome(num)) ` `        ``{ ` `            ``printf``(``"%lld\n"``,num); ` `            ``break``; ` `        ``} ` `        ``else` `if` `(num > 4294967295) ` `        ``{ ` `            ``printf``(``"No palindrome exist"``); ` `        ``} ` `    ``} ` `} ` ` `  `// Driver Program ` `int` `main() ` `{ ` `    ``ReverseandAdd(195); ` `    ``ReverseandAdd(265); ` `    ``return` `0; ` `} `

## Java

 `// Java Program to implement reverse and add function ` `public` `class` `ReverseAdd  ` `{ ` `    ``/* Iterative function to reverse digits of num*/` `    ``long` `reversDigits(``long` `num) ` `    ``{ ` `        ``long` `rev_num = ``0``; ` `        ``while` `(num > ``0``) ` `        ``{ ` `            ``rev_num = rev_num*``10` `+ num%``10``; ` `            ``num = num/``10``; ` `        ``} ` `        ``return` `rev_num; ` `    ``} ` ` `  `    ``/* Function to check whether he number is ` `           ``palindrome or not */` `    ``boolean` `isPalindrome(``long` `num) ` `    ``{ ` `        ``return` `(reversDigits(num) == num); ` `    ``} ` ` `  `    ``/* Reverse and Add Function */` `    ``void` `ReverseandAdd(``long` `num) ` `    ``{ ` `        ``long` `rev_num = ``0``; ` `        ``while` `(num <= 4294967295l) ` `        ``{ ` `            ``// Reversing the digits of the number ` `            ``rev_num = reversDigits(num); ` ` `  `            ``// Adding the reversed number with the original ` `            ``num = num + rev_num; ` ` `  `            ``// Checking whether the number is palindrome or not ` `            ``if``(isPalindrome(num)) ` `            ``{ ` `                ``System.out.println(num); ` `                ``break``; ` `            ``} ` `            ``else` `if` `(num > 4294967295l) ` `            ``{ ` `                ``System.out.println(``"No palindrome exist"``); ` `            ``} ` `        ``} ` `    ``} ` `     `  `    ``// Main method ` `    ``public` `static` `void` `main(String[] args)  ` `    ``{ ` `        ``ReverseAdd ob = ``new` `ReverseAdd(); ` `        ``ob.ReverseandAdd(195l); ` `        ``ob.ReverseandAdd(265l); ` `         `  `    ``} ` `} `

## Python

 `#Python Program to implement reverse and add function ` ` `  `# Iterative function to reverse digits of num ` `def` `reversDigits(num): ` `    ``rev_num``=``0` `    ``while` `(num > ``0``): ` `        ``rev_num ``=` `rev_num``*``10` `+` `num``%``10` `        ``num ``=` `num``/``10` `    ``return` `rev_num ` ` `  `# Function to check whether the number is palindrome or not ` `def` `isPalindrome(num): ` `    ``return` `(reversDigits(num) ``=``=` `num) ` ` `  `# Reverse and Add Function ` `def` `ReverseandAdd(num): ` `    ``rev_num ``=` `0` `    ``while` `(num <``=` `4294967295``): ` `        ``# Reversing the digits of the number ` `        ``rev_num ``=` `reversDigits(num) ` ` `  `        ``# Adding the reversed number with the original ` `        ``num ``=` `num ``+` `rev_num ` ` `  `        ``# Checking whether the number is palindrome or not ` `        ``if``(isPalindrome(num)): ` `            ``print` `num ` `            ``break` `        ``else``: ` `            ``if` `(num > ``4294967295``): ` `                ``print` `"No palindrome exist"` ` `  `# Driver Code ` `ReverseandAdd(``195``) ` `ReverseandAdd(``265``) `

## C#

 `// C# Program to implement reverse and add function ` `using` `System; ` ` `  `class` `GFG  ` `{ ` `    ``/* Iterative function to reverse digits of num*/` `    ``static` `long` `reversDigits(``long` `num) ` `    ``{ ` `        ``long` `rev_num = 0; ` `        ``while` `(num > 0) ` `        ``{ ` `            ``rev_num = rev_num * 10 + num % 10; ` `            ``num = num / 10; ` `        ``} ` `        ``return` `rev_num; ` `    ``} ` ` `  `    ``/* Function to check whether he number is ` `        ``palindrome or not */` `    ``static` `bool` `isPalindrome(``long` `num) ` `    ``{ ` `        ``return` `(reversDigits(num) == num); ` `    ``} ` ` `  `    ``/* Reverse and Add Function */` `    ``static` `void` `ReverseandAdd(``long` `num) ` `    ``{ ` `        ``long` `rev_num = 0; ` `        ``while` `(num <= 4294967295) ` `        ``{ ` `            ``// Reversing the digits of the number ` `            ``rev_num = reversDigits(num); ` ` `  `            ``// Adding the reversed number with the original ` `            ``num = num + rev_num; ` ` `  `            ``// Checking whether the number is palindrome or not ` `            ``if``(isPalindrome(num)) ` `            ``{ ` `                ``Console.WriteLine(num); ` `                ``break``; ` `            ``} ` `            ``else` `if` `(num > 4294967295) ` `            ``{ ` `                ``Console.WriteLine(``"No palindrome exist"``); ` `            ``} ` `        ``} ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `Main()  ` `    ``{ ` `        ``ReverseandAdd(195); ` `        ``ReverseandAdd(265); ` `    ``} ` `} ` ` `  `// This code is contributed by chandan_jnu `

## PHP

 ` 0) ` `    ``{ ` `        ``\$rev_num` `= ``\$rev_num` `* 10 + ``\$num` `% 10; ` `        ``\$num` `= (int)(``\$num` `/ 10); ` `    ``} ` `    ``return` `\$rev_num``; ` `} ` ` `  `/* Function to check whether he number ` `   ``is palindrome or not */` `function` `isPalindrome(``\$num``) ` `{ ` `    ``return` `(reversDigits(``\$num``) == ``\$num``); ` `} ` ` `  `/* Reverse and Add Function */` `function` `ReverseandAdd(``\$num``) ` `{ ` `     ``\$rev_num` `= 0; ` `    ``while` `(``\$num` `<= 4294967295) ` `    ``{ ` `        ``// Reversing the digits of the number ` `        ``\$rev_num` `= reversDigits(``\$num``); ` ` `  `        ``// Adding the reversed number with ` `        ``// the original ` `        ``\$num` `= ``\$num` `+ ``\$rev_num``; ` ` `  `        ``// Checking whether the number is ` `        ``// palindrome or not ` `        ``if` `(isPalindrome(``\$num``)) ` `        ``{ ` `            ``print``(``\$num` `. ``"\n"``); ` `            ``break``; ` `        ``} ` `        ``else` `if` `(``\$num` `> 4294967295) ` `        ``{ ` `            ``print``(``"No palindrome exist"``); ` `        ``} ` `    ``} ` `} ` ` `  `// Driver Code ` `ReverseandAdd(195); ` `ReverseandAdd(265); ` ` `  `// This code is contributed by chandan_jnu ` `?> `

Output:

```9339
45254
```

This article is contributed by Rahul Agrawal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Improved By : Chandan_Kumar

Article Tags :
Practice Tags :

2

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.