随机输入一个数,判断它是不是对称数(回文数)(如 3,121,12321,45254)。不能 用字符串库函数

62 阅读1分钟
def is_palindrome(num):
    if num < 0:
        return False  # 负数不是回文数
    
    # 计算数字的位数
    temp = num
    num_digits = 0
    while temp > 0:
        temp //= 10
        num_digits += 1
    
    # 比较数字的前半部分和后半部分
    for i in range(num_digits // 2):
        # 获取当前位的数字
        left_digit = (num // (10 ** (num_digits - 1 - i))) % 10
        right_digit = (num // (10 ** i)) % 10
        
        if left_digit != right_digit:
            return False
    
    return True

# 测试
num = int(input("请输入一个数: "))
if is_palindrome(num):
    print(f"{num} 是对称数(回文数)")
else:
    print(f"{num} 不是对称数(回文数)")

这个代码的工作原理如下:

  1. 首先检查输入的数是否为负数,负数不是回文数。
  2. 计算输入数的位数。
  3. 通过比较数字的前半部分和后半部分的对应位来判断是否为回文数。