课后作业
零基础学python 最新版中课后作业第18讲的动动手第一题回文数答案看不懂有大神能解释解释吗 本帖最后由 柿子饼同学 于 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("不是回文数。")
额,注释看不懂的来问我{:10_254:}
页:
[1]