最近在刷蓝桥杯题目,按题目做一下笔记整理,顺便分享交流一下,有更好的解决方案欢迎大家共同提出探讨,以下源代码为系统提交满分答案
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
测评结果
更多题目,点击查看
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)