I am beginner in programming, So can you please tell me what’s wrong with my code?
I want to print next palindrome number if the number entered by the user (n) is not palindrome
JavaScript
x
26
26
1
n = int(input("Enter any number :- "))
2
3
reverse = 0
4
temp = n
5
6
while (n!=0):
7
reverse = reverse * 10
8
reverse = reverse + n%10
9
n=n//10
10
if(temp==reverse):
11
print ("Already palindrome:: ")
12
13
if(temp != reverse):
14
new_temp = temp
15
new_reverse = 0
16
for i in range(new_temp,new_temp+10):
17
while(temp != 0):
18
new_reverse = new_reverse * 10
19
new_reverse = new_reverse + temp%10
20
temp = temp//10
21
if(new_temp==new_reverse):
22
print ("Next pallindrome is :- ",new_temp)
23
break
24
if(new_temp != new_reverse):
25
temp = new_temp+1
26
Advertisement
Answer
There are two problems with your code.
1) Your “for i in range” loop calculates the reverse of the temp variable, but you don’t change the temp variable’s value. You do
JavaScript
1
6
1
new_temp = temp
2
for i in range(new_temp,new_temp+10):
3
[SNIP]
4
if(new_temp != new_reverse):
5
temp = new_temp+1 #this value never changes.
6
So you’re making 10 iterations with one and the same value.
2) Ten iterations might not be enough to find a palindrome. Keep going until you find a palindrome.
Working code:
JavaScript
1
17
17
1
def reverse(num):
2
reverse= 0
3
while num:
4
reverse= reverse*10 + num%10
5
num= num//10
6
return reverse
7
8
num= int(input("Enter any number :- "))
9
if num==reverse(num):
10
print ("Already palindrome.")
11
else:
12
while True:
13
num+= 1
14
if num==reverse(num):
15
print ("Next palindrome is : %s"%num)
16
break
17