Last Updated: 8 Sep, 2025

Reverse and Add Palindrome

Moderate

Problem statement

You are given a non-negative integer N. Your task is to apply the "reverse and add" process to find a resulting palindrome.

The process is as follows:

1)Take the number N.


2)Reverse its digits to create a new number, reversed_N.


3)Add the two numbers together: sum = N + reversed_N.


4)If sum is a palindrome, the process stops, and sum is the result.


5)If sum is not a palindrome, it becomes the new N, and the process repeats from step 1.


You must also handle two failure conditions:

  • If the process takes more than 1,000 additions to find a palindrome, it is considered a failure.

  • If at any step, the sum becomes greater than 4,294,967,295, the process also fails.

  • If the process fails, you should indicate that a palindrome does not exist under these conditions.


    Input Format:
    A single line containing the integer N.
    


    Output Format:
    If a palindrome is found, print the resulting number.
    
    If the process fails due to either the iteration limit or the value limit, print the string No palindrome exist.
    


    Note:
    A number is a palindrome if it reads the same forwards and backwards (e.g., 121, 9339).
    
    If the initial number N is already a palindrome, no additions are needed, and the output is N itself.
    
    The maximum value 4,294,967,295 is the largest number that can be stored in a standard 32-bit unsigned integer. You should use a data type that can handle numbers larger than this for intermediate calculations (e.g., long in Java, long long in C++).