下一个回文数 [英] The Next Palindrome number
问题描述
我初学编程,所以可以请你告诉我什么地方错了我的code?
我想打印下一个回文数如果由用户输入的(n)的数目并不回文
N = INT(输入(输入任何数字: - ))
反向= 0
温度= N
而(N = 0!):
反向=反向* 10
反向=反向+ N%10
N = N // 10
如果(临时==反向):
打印(已经回文::)
如果(临时=反转!):
new_temp =温度
new_reverse = 0
因为我在范围内(new_temp,new_temp + 10):
而(温度!= 0):
new_reverse = new_reverse * 10
new_reverse = new_reverse + TEMP%10
TEMP =临时// 10
如果(new_temp == new_reverse):
打印(下一步pallindrome是: - ,new_temp)
打破
如果(!new_temp = new_reverse):
TEMP = new_temp + 1
有两个问题你code。
1)你,因为我在范围内循环计算的临时变量的反转,但你不改变的临时变量的值。 您
new_temp =温度
因为我在范围内(new_temp,new_temp + 10):
[SNIP]
如果(!new_temp = new_reverse):
TEMP = new_temp + 1#这个值永远不会改变。
所以,你做10次迭代一个相同的值。
2)十次迭代可能不足以找到回文。一直走,直到你找到一个回文。
工作code:
高清反转(NUM):
反向= 0
而NUM:
反向=反向* 10 + NUM%10
NUM = NUM // 10
回报反向
NUM = INT(输入(输入任何数字: - ))
如果num ==反向(NUM):
打印(已回文。)
其他:
而真正的:
NUM + = 1
如果num ==反向(NUM):
打印(下一个回文是:%s的%NUM)
打破
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
n = int(input("Enter any number :- "))
reverse = 0
temp = n
while (n!=0):
reverse = reverse * 10
reverse = reverse + n%10
n=n//10
if(temp==reverse):
print ("Already palindrome:: ")
if(temp != reverse):
new_temp = temp
new_reverse = 0
for i in range(new_temp,new_temp+10):
while(temp != 0):
new_reverse = new_reverse * 10
new_reverse = new_reverse + temp%10
temp = temp//10
if(new_temp==new_reverse):
print ("Next pallindrome is :- ",new_temp)
break
if(new_temp != new_reverse):
temp = new_temp+1
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
new_temp = temp
for i in range(new_temp,new_temp+10):
[SNIP]
if(new_temp != new_reverse):
temp = new_temp+1 #this value never changes.
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:
def reverse(num):
reverse= 0
while num:
reverse= reverse*10 + num%10
num= num//10
return reverse
num= int(input("Enter any number :- "))
if num==reverse(num):
print ("Already palindrome.")
else:
while True:
num+= 1
if num==reverse(num):
print ("Next palindrome is : %s"%num)
break
这篇关于下一个回文数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!