蓝桥杯 基础练习 01字串(C语言)

问题描述

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

00000

00001

00010

00011

00100

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

输入格式

本试题没有输入。

输出格式

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

样例输出

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

解法

1.最简单的方法,直接全部printf(“00000”);把所有的都写一编。
2.使用循环的方法:
(1)设置数组,循环赋值全为0;
(2)按列(5列)分别进行修改,通过求余的方式设置。
具体代码如下:

#include <stdio.h>
int main() {
	int i,j,z,o,t,s,f;
	int a[32][5];
	//循环初始化 
	for( i=0;i<32;i++ ){
		for(j=0;j<5;j++){
			a[i][j]=0;
		}
	}
	//循环修改中间值 
	f=1;s=0;t=0;o=0;z=0;
	for( i=0;i<32;i++ ){
		for(j=0;j<5;j++){
			if(f%2==0&&j==4){//第五列 
				a[i][j]=1;
			} 
			if((s%4)>=2 && j==3 ){//第四列 
				a[i][j]=1;
			}
			if((t%8)>=4 && j==2){//第三列 
				a[i][j]=1;
			} 
			if((t%16)>=8 && j==1){//第二列 
				a[i][j]=1;
			}
			if((t%32)>=16 && j==0){//第一列 
				a[i][j]=1;
			}  	
		}
		s++;f++;t++;o++;z++;
	}
	//循环输出 
	for( i=0;i<32;i++ ){
		for(j=0;j<5;j++){
			printf("%d",a[i][j]);
		}
		printf("\n");
	}
	
	return 0;
}

想法简单,实现更简单,100分(o゜▽゜)o☆[BINGO!]

发布了12 篇原创文章 · 获赞 2 · 访问量 395

猜你喜欢

转载自blog.csdn.net/Bad_Shepherd/article/details/104182298