You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

判断整数是否为回文数的代码始终返回false问题求助

问题:判断整数是否为回文数的代码始终返回False

你的代码逻辑存在一个关键问题,导致无论输入什么有效回文数都会返回False:

def checkPalindrome(num):
    rev = 0
    while num != 0:
        d = num % 10
        rev = (rev * 10) + d
        num = num // 10
    print(rev)
    if num==rev:
        return True
    else:
        return False

print(checkPalindrome(1)) 

问题分析

在while循环中,你直接对传入的参数num进行了修改(num = num // 10),当循环结束时,num的值已经被逐步整除为0。这时候你拿0和反转后的rev做比较,显然永远不会相等,所以函数必然返回False。

修正方案

只需要先保存原始的num值,用一个临时变量来处理循环中的整除操作,最后拿原始值和反转后的rev比较即可:

def checkPalindrome(num):
    original_num = num
    rev = 0
    # 用临时变量temp_num来处理循环,避免修改原始num
    temp_num = num
    while temp_num != 0:
        d = temp_num % 10
        rev = (rev * 10) + d
        temp_num = temp_num // 10
    print(rev)
    return original_num == rev

print(checkPalindrome(1))  # 输出True

额外优化(可选)

如果需要处理负数的情况,因为负数包含负号,不可能是回文数,可以在函数开头直接判断:

def checkPalindrome(num):
    # 负数直接返回False
    if num < 0:
        return False
    original_num = num
    rev = 0
    temp_num = num
    while temp_num != 0:
        d = temp_num % 10
        rev = (rev * 10) + d
        temp_num = temp_num // 10
    return original_num == rev

内容的提问来源于stack exchange,提问作者MANISH VERMA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:45:41