基础练习 01字串

问题描述

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

输入格式

本试题没有输入。

输出格式

输出32行,按从小到大的顺序每行一个长度为5的01串。

样例输出

00000
00001
00010
00011
<以下部分省略>

solution1

#include 
int main(){
	int a[5] = {0};
	while(!(a[0] == 1 && a[1] == 1 && a[2] == 1 && a[3] == 1 && a[4] == 1)){
		for(int i = 0; i < 5; i++)
			printf("%d", a[i]);
		printf("\n");
		a[4]++;
		for(int i = 4; i >= 0; i--){
			if(a[i] > 1){
				a[i] = a[i] % 2;
				a[i-1]++;
			}
		}
	}
	printf("11111");
	return 0;
} 

solution2

#include 
int main(){
	for(int i = 0; i < 32; i++)
		printf("%d%d%d%d%d\n", i/16%2, i/8%2, i/4%2, i/2%2, i%2);
	return 0;
} 

你可能感兴趣的:(蓝桥杯,算法,数据结构)