0
点赞
收藏
分享

微信扫一扫

蓝桥杯 基础练习 01字串 C/C++/Java/Python描述


蓝桥杯 基础练习 01字串 C/C++/Java/Python描述

 大家好,我叫亓官劼(qí guān jié )

题目

资源限制

时间限制: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é )


举报

相关推荐

0 条评论