最近在刷蓝桥杯题目,按题目做一下笔记整理,顺便分享交流一下,有更好的解决方案欢迎大家共同提出探讨,以下源代码为系统提交满分答案
01字串
问题描述
资源限制
Python时间限制:5.0s、
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
源代码
for i in range(32):
print(bin(i)[2:].zfill(5))
问题分析
通过对题目输出的分析,发现这是输出
由0到31的五位二进制数,考虑使用for循环+bin()的方法解决,bin()将十进制数转换为二进制数,但转换后仍存在0b,如下图1,使用切片访问[2:]从第三位开始取值,从而删除0b前缀,删除前缀后发现前几位位数不足五位不显示0,如下图2,使用zfill()对二进制位数进行规定,不足补0


测评结果

更多题目,点击查看👇
Python蓝桥杯 基础练习题目整理👈
Python蓝桥杯 算法训练题目整理👈
Python蓝桥杯 算法提高题目整理👈
Python蓝桥杯 历届真题题目整理👈
Python蓝桥杯 练习系统题目整理(全)👈
文章介绍了如何使用Python的bin()和zfill()函数解决蓝桥杯中的一道编程题,该题要求按顺序输出所有5位的01串。通过for循环遍历0到31,将十进制转为二进制并处理前缀及不足位数的问题。
2110

被折叠的 条评论
为什么被折叠?



