69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
|
|
def is_palindrome(num):
|
|||
|
|
"""
|
|||
|
|
判断一个整数是否是回文数
|
|||
|
|
|
|||
|
|
参数:
|
|||
|
|
num (int): 要检查的整数
|
|||
|
|
|
|||
|
|
返回:
|
|||
|
|
bool: 如果是回文数返回True,否则返回False
|
|||
|
|
"""
|
|||
|
|
if num < 0:
|
|||
|
|
return False
|
|||
|
|
str_num = str(num)
|
|||
|
|
return str_num == str_num[::-1]
|
|||
|
|
|
|||
|
|
|
|||
|
|
def find_palindromes_in_range(start, end):
|
|||
|
|
"""
|
|||
|
|
查找指定范围内的所有回文数
|
|||
|
|
|
|||
|
|
参数:
|
|||
|
|
start (int): 起始值(包含)
|
|||
|
|
end (int): 结束值(包含)
|
|||
|
|
|
|||
|
|
返回:
|
|||
|
|
list: 范围内的回文数列表
|
|||
|
|
"""
|
|||
|
|
palindromes = []
|
|||
|
|
for num in range(start, end + 1):
|
|||
|
|
if is_palindrome(num):
|
|||
|
|
palindromes.append(num)
|
|||
|
|
return palindromes
|
|||
|
|
|
|||
|
|
|
|||
|
|
def main():
|
|||
|
|
"""主函数,演示回文数计算"""
|
|||
|
|
print("回文数计算示例")
|
|||
|
|
print("=" * 30)
|
|||
|
|
|
|||
|
|
# 测试一些数字
|
|||
|
|
test_numbers = [121, 123, 12321, -121, 0, 1, 10, 11, 1221]
|
|||
|
|
|
|||
|
|
for num in test_numbers:
|
|||
|
|
result = is_palindrome(num)
|
|||
|
|
print(f"{num} 是回文数吗?{result}")
|
|||
|
|
|
|||
|
|
print("\n查找 1 到 200 之间的回文数:")
|
|||
|
|
palindromes = find_palindromes_in_range(1, 200)
|
|||
|
|
print(f"共找到 {len(palindromes)} 个回文数:")
|
|||
|
|
print(palindromes)
|
|||
|
|
|
|||
|
|
# 用户输入示例
|
|||
|
|
print("\n" + "=" * 30)
|
|||
|
|
try:
|
|||
|
|
user_input = input("请输入一个整数检查是否是回文数 (按Enter跳过): ")
|
|||
|
|
if user_input.strip():
|
|||
|
|
num = int(user_input)
|
|||
|
|
if is_palindrome(num):
|
|||
|
|
print(f"{num} 是回文数!")
|
|||
|
|
else:
|
|||
|
|
print(f"{num} 不是回文数。")
|
|||
|
|
except ValueError:
|
|||
|
|
print("输入无效,请输入一个整数。")
|
|||
|
|
except EOFError:
|
|||
|
|
pass # 脚本运行而非交互时可能发生
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
main()
|