微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法让 python 程序扫描用户输入的数字并检查它是否是回文、阿姆斯特朗数和完全数

如何解决无法让 python 程序扫描用户输入的数字并检查它是否是回文、阿姆斯特朗数和完全数

我想扫描一个数字并在 python 中打印它是回文、阿姆斯特朗数或完全数,我尝试了以下方法但它不起作用,我已经单独检查了它们并且它们按预期工作。 代码

#palindrome
n=int(input("Enter number:"))
temp=n
rev=0
while(n>0):
    dig=n%10
    rev=rev*10+dig
    n=n//10
if(temp==rev):
    print(n,"The number is a palindrome!")
else:
    print(n,"The number isn't a palindrome!")
#Armstrong
sum = 0
temp = n
while temp > 0:
   digit = temp % 10
   sum += digit ** 3
   temp //= 10
if n == sum:
   print(n,"is an Armstrong number")
else:
   print(n,"is not an Armstrong number")
#Perfect Number
sum1 = 0
for i in range(1,n):
    if(n % i == 0):
        sum1 = sum1 + i
if (sum1 == n):
    print(n,"The number is a Perfect number!")
else:
    print(n,"The number is not a Perfect number!")   

解决方法

回文码修改n,然后你直接重用amstrongperfect,你要回到最初的数字,为此,请使用您的 temp

#Armstrong
sum = 0
n = temp

同时执行以下操作,出于同样的原因 n 已更改

print(temp,"The number is a palindrome!")

但是摆脱这种情况的最好方法以及更好的编码方法是使用方法

def palindrome(n):
    temp = n
    rev = 0
    while n > 0:
        dig = n % 10
        rev = rev * 10 + dig
        n = n // 10
    if temp == rev:
        print(temp,"The number is a palindrome!")
    else:
        print(temp,"The number isn't a palindrome!")

def armstrong(n):
    count = 0
    temp = n
    while temp > 0:
        digit = temp % 10
        count += digit ** 3
        temp //= 10
    if n == count:
        print(n,"is an Armstrong number")
    else:
        print(n,"is not an Armstrong number")

def perfect(n):
    count = 0
    for i in range(1,n):
        if n % i == 0:
            count = count + i
    if count == n:
        print(n,"The number is a Perfect number!")
    else:
        print(n,"The number is not a Perfect number!")

if __name__ == '__main__':
    n = int(input("Enter number:"))
    palindrome(n)
    armstrong(n)
    perfect(n)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?