gpt4 book ai didi

python - 下一个回文数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:30:49 24 4
gpt4 key购买 nike

我是编程初学者,所以你能告诉我我的代码有什么问题吗?

如果用户输入的数字(n)不是回文,我想打印下一个回文数

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

最佳答案

您的代码有两个问题。

1) 您的“for i in range”循环计算临时变量的反向值,但您不更改临时变量的值。你做

 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.

因此您将使用一个相同的值进行 10 次迭代。

2) 十次迭代可能不足以找到回文。继续前进,直到找到回文。

工作代码:

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

关于python - 下一个回文数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25616499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com