蓝桥杯 基础练习 01字串 C/C++/Java/Python描述
大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客,B站昵称为:
亓官劼
,地址为亓官劼的B站本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!!
题目
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
C/C++解法
这里值使用五个0到1
的循环进行输出,当然也有很多其他的方法,就不一一列举了。尤其是根据各个语言特性,可以写出很多优雅的解题方法。
#include <iostream>
using namespace std;
int main(){
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
for (int k = 0; k < 2; ++k) {
for (int l = 0; l < 2; ++l) {
for (int m = 0; m < 2; ++m) {
cout<<i<<j<<k<<l<<m<<endl;
}
}
}
}
}
return 0;
}
Java解法
这里值使用五个0到1
的循环进行输出,当然也有很多其他的方法,就不一一列举了。尤其是根据各个语言特性,可以写出很多优雅的解题方法。
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
for (int k = 0; k < 2; ++k) {
for (int l = 0; l < 2; ++l) {
for (int m = 0; m < 2; ++m) {
System.out.println(i+""+j+""+k+""+l+""+m);
}
}
}
}
}
}
}
Python解法
这里值使用五个0到1
的循环进行输出,当然也有很多其他的方法,就不一一列举了。尤其是根据各个语言特性,可以写出很多优雅的解题方法。这里主要要设置一下print的sep属性
for i in range(2):
for j in range(2):
for k in range(2):
for m in range(2):
for l in range(2):
print(i,j,k,m,l,sep='')
Python优雅解法示例
这里提供一个比较优雅的解法,另外的语音也都有很多种解法,可以写的很优雅,就不在此一一列出,有兴趣的小伙伴可以自己去看看。
这里使用Python,我们直接输出0-31的二进制数,固定为5位前面补零:
for i in range(32):
print('{:05b}'.format(i))
大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客,B站昵称为:
亓官劼
,地址为亓官劼的B站本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!!