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} 不是对称数(回文数)")
这个代码的工作原理如下:
- 首先检查输入的数是否为负数,负数不是回文数。
- 计算输入数的位数。
- 通过比较数字的前半部分和后半部分的对应位来判断是否为回文数。