要求:
编写一个程序来检查一个数字是否是双基回文数。
回文是指从前往后读和从后往前读都一样的字母、数字的序列。
双基回文数是指在十进制和二进制表示中都是回文的数字。
例如:
585 = 1001001001
是一个双基回文,其二进制是回文形式,十进制也是回文形式。
- 定义函数
check_double_base_palindrome()
,参数为整数。 - 在函数内,检查数字的十进制和二进制形式是否都是回文。
- 如果是双基回文,返回
True
,否则返回False
。
示例输入
313
示例输出
True
代码:
def check_double_base_palindrome(number):
decimal_str = str(number) # 将数字转换为字符串形式
binary_str = bin(number)[2:] # 将数字转换为二进制字符串形式,并去除前缀 "0b"
if decimal_str == decimal_str[::-1] and binary_str == binary_str[::-1]:
return True
else:
return False
# 获取用户输入
number = int(input())
# 调用函数
print(check_double_base_palindrome(number))