下一个回文数 [英] The Next Palindrome number

查看:162
本文介绍了下一个回文数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我初学编程,所以可以请你告诉我什么地方错了我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆