python - 判断一个数是否是回文数
问题描述
#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.")
我找不到“检查它是否是回文”部分的问题。
解决方案
在您检查回文的代码中,您反复将您的temp
值除以 10,但您的条件是temp>0
永远不会达到的,因为反复除以 10 永远不会产生负数。因此,您应该将您的条件更改为while(temp>=1)
.
此外,您应该比较rev
tono
而不是 with的最终值temp
。因此,如果您将最终条件更改为if(rev==no):
它应该可以工作。这是因为您的 temp 在循环中不断被修改以检查回文,而您想将最终转速与原始数字进行比较。
推荐阅读
- api - 通过 REST API 向 Microsoft Team 发送消息通知
- git - git mergetool cmd 找不到要合并的文件,merge cmd 会
- vba - 如何使用 VBA 显示变音符号?
- javascript - 在 three.js 中加载高质量图像时浏览器崩溃?
- mysql - MySQL Query 中的多值行数
- angular - ng-fullcalendar 标题在角度 5 中有 undefinedundefined
- asp.net - 无法从 BsonType 'Double' 反序列化 'ObjectId'
- python - 使用 for 循环迭代 Dataset TF 2.0
- node.js - 基于第二个集合中的匹配聚合
- java - Jackson 将类名序列化为所有对象的属性