关于回文数的问题
新版课后作业18讲x = int(input("请输入一个正整数:"))
if x < 0 or (x % 10 == 0 and x != 0):
print("不是回文数。")
else:
revertedNumber = 0
while x > revertedNumber:
revertedNumber = revertedNumber * 10 + x % 10
x //= 10
if x == revertedNumber or x == revertedNumber // 10:
print("是回文数。")
else:
print("不是回文数。")
比如说 121 ,121>0,revertedNumber = 0*10 + 121 % 10 = 1, x = 121 // 10 = 12 然后继续循环,12>0 ,revertedNumber = 1*10 + 12 % 10 = 3 ,x = 12//10 = 1 ,然后判断1< 3,while 循环结束,这也不好判断是不是回文数啊
对于这个循环的运算不太理解,按照运行的结果,revertedNumber 应该是12,但是 计算也得不到12,请问while里面的运算是什么样的? 你可以看一下这个:
https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=208600&pid=5722550 isdkz 发表于 2022-4-3 17:59
你可以看一下这个:
https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=208600&pid=572255 ...
看过了,还是不理解其中的运算,revertedNumber在 x 大于它的情况下,就应该一直执行
revertedNumber = revertedNumber * 10 + x % 10 这行代码
比如说121 ,第一次 revertedNumber 值为1 ,第二次 应该为 3 啊,怎么会变成12 呢,如果说第二次为 2,那第一次它的值 1,又存储在哪里呢? revertedNumber = 1*10 + 12 % 10 = 3 这个不就是等于12么。。。。
页:
[1]