python检查整数是不是回文

方法一:用一个while循环,将一个数每次都取出首位和末位,判断是否相等,

如果相等那么去掉这个数的首位和末位,
最后如果剩余1位数,即位数为奇数,且是最中间那一位,表明这个数是回文数
如果最后剩余0位数,即位数为偶数,表明这个数是回文数退出
只要有一次不相等退出即可

x=int(input("请输入一个整数:"))
if x<0:
    print("不是回文数。")
elif not x//10:# 这个条件判断的是个位数,个位数直接是回文数
    print("是回文数。")
else:
    y = x
    weishu = 0
    # 获得当前的位数
    while x:
        weishu += 1
        x = x // 10
    while True:
        a = y // (10 ** (weishu - 1))  # 这是取数字的首位
        b = y % 10  # 取数字的末位
        if a != b:  # 如果首尾不相等则不是回文数
            print('不是回文数')

        weishu -= 2
        if weishu == 1:
            print('是回文数')
            break
        if not weishu:
            print("是回文数")
            break
        y = y // 10   # 去掉末位
        y = y % (10 ** weishu)  # 去掉首位

方法二: 每一个回文数从中间切开,前后都是相等的,得到一个回文数后面的数与前面的数比较即可

# 开发时间:2024/1/10 17:05
x = int(input("请输入一个整数:"))
if x < 0 or (x % 10 == 0 and x != 0):  # 小于0或者 不为0时末位数为0的都不是回文
    print("不是回文数。")
elif not x // 10:   # 个位数直接是回文
    print("是回文数。")
else:
    hou = 0
    while x > hou:  # 当后面的数已经大于前面的数就可以退出循环
        hou = hou * 10 + x % 10   # 每次将后面的数乘上10, 然后加上前面数的末位
        x //= 10  # 消除末位
        print('-----', x, hou)
    # 只要最后得到的前面的数,或者后面的数除去末位数与另一个相等即可
    if x == hou or x == (hou // 10):
        print('是回文')
    else:
        print('不是回文数')


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容