年NOC大赛Python初中组决赛真题-二进制回文,,
年NOC大赛Python初中组决赛真题-二进制回文,,
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 = 0j = len(bin_n) - 1res = 'Ture'while i < j: if bin_n[i] != bin_n[j]: res = 'False' i += 1 j -= 1print(res)#方法2:判断回文if bin_n=="".join(reversed(bin_n)): print("Ture")else: print("False")
本站内容未经许可,禁止任何网站及个人进行转载。
评论关闭