鱼C论坛

 找回密码
 立即注册
查看: 1485|回复: 3

[已解决]关于回文数的问题

[复制链接]
发表于 2022-4-3 17:58:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
新版课后作业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里面的运算是什么样的?
最佳答案
2022-4-3 19:48:58
revertedNumber = 1*10 + 12 % 10 = 3   这个不就是等于12么。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-3 17:59:42 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-3 19:01:48 | 显示全部楼层
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,又存储在哪里呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-3 19:48:58 | 显示全部楼层    本楼为最佳答案   
revertedNumber = 1*10 + 12 % 10 = 3   这个不就是等于12么。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 09:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表