﻿ Python: Closest Palindrome number of a given integer - w3resource

# 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.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿