# Reverse and Add given number repeatedly to get a Palindrome number

• Difficulty Level : Basic
• Last Updated : 07 Mar, 2022

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: N = 195
Output: 9339

Input: N = 265
Output: 45254

Input: N = 196
Output: No palindrome exist

Approach: Create a reverse and add function to start 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.

## 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 the ``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);``    ``}``}`

## Python3

 `# 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``?>`

## Javascript

 ``
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 write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.