当前位置:首页>python>【GESP】2026年03月Python三级 -- 二进制回文串

【GESP】2026年03月Python三级 -- 二进制回文串

  • 2026-10-11 07:27:06
【GESP】2026年03月Python三级 -- 二进制回文串

跟老马一起“升级打怪”学编程!

旨在为小朋友们提供全面的学习材料,共同为等级考试做好准备。

添加小助手微信,回复【GESP三级2026.03_二进制回文串】,获取本题源代码。

GESP三级2026.03_二进制回文串

【提交】

https://www.luogu.com.cn/problem/B4499

【问题描述】

对于一个正整数 ,我们将其转换为不含前导零的二进制表示,如果这个二进制序列从左向右读与从右向左读完全相同,则称该数为二进制回文数。例如, 的二进制表示为  ,是二进制回文数; 的二进制表示为 ,不是二进制回文数。

你的任务是:给定一个正整数 ,计算在  到  的范围内二进制回文数的数量。

【输入描述】

输入一行,包含一个正整数 。

【输出描述】

输出一行,包含一个数,表示在  到  的范围内二进制回文数的数量。

【样例输入1】

15

【样例输出1】

6

【样例解释】

样例 1 中, 到  范围内 、、、、、 是二进制回文数。

【数据范围】

。

参考程序:

方法一:

"""[GESP202603 三级] 二进制回文串https://www.luogu.com.cn/problem/B4499"""n = int(input())i = 1cnt = 0while i <= n:    s = ""    j = iwhile j != 0:        s = str(j % 2) + s        j = j // 2    i += 2if s == s[::-1]:        cnt += 1print(cnt)

方法二:

"""[GESP202603 三级] 二进制回文串https://www.luogu.com.cn/problem/B4499"""n = int(input())cnt = 0for i in range(1, n + 1):    binary = bin(i)[2:]  # 获取二进制字符串(去掉 '0b' 前缀)if binary == binary[::-1]:  # 判断是否回文        cnt += 1print(cnt)

青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章