即12321是回文数,个位与万位相同,十位与千位相同
回文数是指一个数从左向右和从右向左读是一样的,例如:12321。我们需要编写一个程序来判断一个5位数是否是回文数。
def is_palindrome(num):
num_str = str(num)
return num_str == num_str[::-1]
def main():
num = int(input("请输入一个5位数: "))
if is_palindrome(num):
print("是回文数")
else:
print("不是回文数")
if __name__ == "__main__":
main()
解题思路:
优点:
缺点:
def is_palindrome(num):
reversed_num = 0
original_num = num
while num > 0:
remainder = num % 10
reversed_num = reversed_num * 10 + remainder
num //= 10
return reversed_num == original_num
def main():
num = int(input("请输入一个5位数: "))
if is_palindrome(num):
print("是回文数")
else:
print("不是回文数")
if __name__ == "__main__":
main()
解题思路:
优点:
缺点:
def is_palindrome(num):
digits = []
original_num = num
while num > 0:
digits.append(num % 10)
num //= 10
# 逐位判断是否是回文数
for i in range(len(digits) // 2):
if digits[i] != digits[len(digits) - i - 1]:
return False
return True
def main():
num = int(input("请输入一个5位数: "))
if is_palindrome(num):
print("是回文数")
else:
print("不是回文数")
if __name__ == "__main__":
main()
解题思路:
优点:
缺点:
推荐方法: 方法1和方法2都是很好的选择,它们不需要额外空间,只需要数值运算,并且代码简洁明了。
适用场景:
综上所述,方法1(转换成字符串)和方法2(反转数字)是较好的选择,可以根据具体场景选择其中一种。方法3(使用数组)也可用,但由于可能引入额外空间,不推荐在不必要的情况下使用。