2023年NOC大赛Python初中组决赛真题-二进制回文

编程实现:输入一个正整数,判断它的二进制形式是否是回文数,如果是输出True,不是输出False例:数字3的二进制形式是11,是一个回文数,输出True。

输入描述

输入一个正整数n。

输出描述

判断数字n的二进制形式是否是回文数,如果是输出True,不是输出False。

输入样例

3

输出样例

True


要点:

1、十进制转二进制

Python内置函数bin()可以将十进制整数转换为二进制数。它返回一个以"0b"开头的二进制字符串,所以结果要去掉‘ob’。

2、判断回文(二选一即可)

方法1:从二进制字符串的两端向中间取数进行比较,如果发现不相等则不是回文。

方法2:reversed()函数对字符串反转迭代,用"".join()连接为字符串,与原始字符串进行对比,检查字符串是否是回文。


参考答案:

#输入一个整数
n = int(input())
#转为二进制字符串ob开头,截取二进制
bin_n = bin(n)[2:]
print(bin_n)
#方法1:判断是不是回文
i = 0
j = len(bin_n) - 1
res = 'Ture'
while i < j:
    if bin_n[i] != bin_n[j]:
       res = 'False'
    i += 1
    j -= 1
print(res)
#方法2:判断回文
if bin_n=="".join(reversed(bin_n)):
    print("Ture")
else:
    print("False")

本站内容未经许可,禁止任何网站及个人进行转载。