首页 > 解决方案 > 判断一个数是否是回文数

问题描述

#WAP to check given number is Armstrong or not, (done)
#if it is Armstrong then print reverse of that number,  (done)
#if it is not Armstrong then check it is Palindrome or not.   (problem)

no=int(input("Enter your number:"))
temp=no
arm=0
rev=0
while(no>0):
    rem=no%10
    cube=rem*rem*rem
    arm=arm+cube
    no=no//10

if(temp==arm):
    while (temp> 0):
        rem = temp % 10
        rev = (rev * 10) + rem
        temp = temp // 10
    print("Reverse is:", rev)

elif(temp!=arm):
    while (temp > 0):
        rem = temp % 10
        rev = rev * 10 + rem
        temp = temp // 10

if(rev==temp):
    print("It's a palindrome.")

else:
    print("It's not a palindrome.")

我找不到“检查它是否是回文”部分的问题。

标签: python

解决方案


在您检查回文的代码中,您反复将您的temp值除以 10,但您的条件是temp>0永远不会达到的,因为反复除以 10 永远不会产生负数。因此,您应该将您的条件更改为while(temp>=1).

此外,您应该比较revtono而不是 with的最终值temp。因此,如果您将最终条件更改为if(rev==no):它应该可以工作。这是因为您的 temp 在循环中不断被修改以检查回文,而您想将最终转速与原始数字进行比较。


推荐阅读