问题描述
对于长度为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!]