鱼C论坛

 找回密码
 立即注册
查看: 1334|回复: 1

课后作业

[复制链接]
发表于 2021-8-1 19:07:14 | 显示全部楼层 |阅读模式

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

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

x
零基础学python 最新版中课后作业第18讲的动动手第一题回文数答案看不懂  有大神能解释解释吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-1 19:28:39 | 显示全部楼层
本帖最后由 柿子饼同学 于 2021-8-1 19:46 编辑

嗯,你不至于所有都看不懂吧...
说说,你具体哪里的代码不懂?
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
        # 一开始,因为revertedNumber = 0 ,所以直接加上输入的x的个位 (x % 10 结果就是除以十的余数,就是它的个位)
        # 下一句的作用是把x最后一位砍断  (x //= 10 就是x除以十然后只取整数部分,所以有去掉末尾的功效)
        # 然后循环再跑一遍,现在就相当于x的末位乘10(其实就是变成十位好让下一位上来)
        # 再加上x //= 10 之后x的个位
        # 这时发现,x的最后一位现在是revertedNumber的最前一位,同理,x的倒数第二位现在是revertedNumber的最正数第二位
        # 就有了一个反转x的一半的功效
        x //= 10

    if x == revertedNumber or x == revertedNumber // 10:
         #这里因为有奇数位的回文数,没办法等分两半,所以砍掉末尾相等也可
        print("是回文数。")
    else:
        print("不是回文数。")
额,注释看不懂的来问我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 22:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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