Python: Closest Palindrome number of a given integer
Python Basic - 1: Exercise-139 with Solution
Write a Python program to find the closest palindrome number to a given integer. If there are two palindrome numbers in absolute distance return the smaller number.
Sample Solution-1:
Python Code:
def test(n):
x = n
y = n
while True:
if str(x) == str(x)[::-1]:
return x
x -= 1
if str(y) == str(y)[::-1]:
return y
y += 1
return int(bin(n)[::-1][:-2], 2)
n = 120;
print("Original number: ", n);
print("Closest Palindrome number of the said number: ",test(n));
n = 321;
print("Original number: ", n);
print("Closest Palindrome number of the said number: ",test(n));
n = 43;
print("Original number: ", n);
print("Closest Palindrome number of the said number: ",test(n));
n = 1234;
print("Original number: ", n);
print("Closest Palindrome number of the said number: ",test(n));
Sample Output:
Original number: 120 Closest Palindrome number of the said number: 121 Original number: 321 Closest Palindrome number of the said number: 323 Original number: 43 Closest Palindrome number of the said number: 44 Original number: 1234 Closest Palindrome number of the said number: 1221
Flowchart:

Sample Solution-2:
Python Code:
def test(n):
result = 0
while n:
if str(n-result)==str(n-result)[::-1]:
return n-result
elif str(n+result)==str(n+result)[::-1]:
return n+result
result+=1
n = 120;
print("Original number: ", n);
print("Closest Palindrome number of the said number: ",test(n));
n = 321;
print("Original number: ", n);
print("Closest Palindrome number of the said number: ",test(n));
n = 43;
print("Original number: ", n);
print("Closest Palindrome number of the said number: ",test(n));
n = 1234;
print("Original number: ", n);
print("Closest Palindrome number of the said number: ",test(n));
Sample Output:
Original number: 120 Closest Palindrome number of the said number: 121 Original number: 321 Closest Palindrome number of the said number: 323 Original number: 43 Closest Palindrome number of the said number: 44 Original number: 1234 Closest Palindrome number of the said number: 1221
Flowchart:

Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Python program to reverse the binary representation of an given integer and convert the reversed binary number into an integer.
Next: Write a Python program to convert all items in a given list to float values.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends
- Python Interview Questions and Answers: Comprehensive Guide
- Scala Exercises, Practice, Solution
- Kotlin Exercises practice with solution
- MongoDB Exercises, Practice, Solution
- SQL Exercises, Practice, Solution - JOINS
- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join