鱼C论坛

 找回密码
 立即注册
查看: 2893|回复: 9

[已解决]为啥这个12321返回不是回文数啊?有大佬帮忙看看不

[复制链接]
发表于 2022-11-12 17:03:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 菜de嚣张 于 2022-11-12 17:10 编辑

698eab55439bc5d63a2c19fa6e2c0dd.png
x = int(input("请输入一个正整数:"))

if x < 0 or x != 0 and (x % 10 == 0):
    print("不是回文数。")
else:
    revertedNumber = 0
    while x > 0:
        revertedNumber = revertedNumber * 10 + x % 10
        x //= 10

    if x == revertedNumber:
        print("是回文数。")
    else:
        print("不是回文数。")
最佳答案
2022-11-12 17:12:06
if x < 0 or x != 0 and (x % 10 == 0):
            and 的优先级高于 or
if x < 0 or (x != 0 and (x % 10 == 0)) :
x = 12321 , x != 0 为 True,x % 10 == 0 为 False,所以,x != 0 and (x % 10 == 0) 为 False
x < 0 为 False,x != 0 and (x % 10 == 0) 为 False,if x < 0 or x != 0 and (x % 10 == 0) 为 False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-12 17:12:06 | 显示全部楼层    本楼为最佳答案   
if x < 0 or x != 0 and (x % 10 == 0):
            and 的优先级高于 or
if x < 0 or (x != 0 and (x % 10 == 0)) :
x = 12321 , x != 0 为 True,x % 10 == 0 为 False,所以,x != 0 and (x % 10 == 0) 为 False
x < 0 为 False,x != 0 and (x % 10 == 0) 为 False,if x < 0 or x != 0 and (x % 10 == 0) 为 False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-12 17:20:25 | 显示全部楼层
对啊,就是False,所以不执行“print(‘不是回文数。’)”,不是吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-12 17:23:50 | 显示全部楼层
jackz007 发表于 2022-11-12 17:12
and 的优先级高于 or


对啊,就是False,所以不执行“print(‘不是回文数。’)”,不是吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-12 17:28:06 | 显示全部楼层
菜de嚣张 发表于 2022-11-12 17:23
对啊,就是False,所以不执行“print(‘不是回文数。’)”,不是吗

    while x > 0:                 # x 不等于 0 不罢休
        revertedNumber = revertedNumber * 10 + x % 10
        x //= 10

    if x == revertedNumber:      # x 是 0 值,怎么可能与  revertedNumber 相等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-12 17:34:16 | 显示全部楼层
x 在循环过程中被变成 0 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-12 17:34:48 | 显示全部楼层
tommyyu 发表于 2022-11-12 17:34
x 在循环过程中被变成 0 了

明白了谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-12 17:35:18 | 显示全部楼层

明白了谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-12 22:06:17 | 显示全部楼层
这个我觉得把数字转成文本,再取反,然后再比较,应该更快吧。
比如 a = str(x)
b = a[::-1]
if a == b:
   print(....)
这样子。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-13 15:55:17 | 显示全部楼层
gywjj 发表于 2022-11-12 22:06
这个我觉得把数字转成文本,再取反,然后再比较,应该更快吧。
比如 a = str(x)
b = a[::-1]

对,是更简单的方法哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 14:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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