01字符串(C语言)

对于长度为 5 位的一个 01 串,每一位都可能是 0 或 1,一共有 32 种可能
。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这 32 种 01 串。
输入格式
本试题没有输入。
输出格式
输出 32 行,按从小到大的顺序每行一个长度为 5 的 01 串。

解题思路
方法1:解答这道题最简单的方法是运用枚举法,将每一种可能用for循环输出

#include<stdio.h>
int main()
{   
 int a,b,c,d,e;
 for(a=0;a<=1;a++)
     for(b=0;b<=1;b++)
        for(c=0;c<=1;c++)
            for(d=0;d<=1;d++)
               for(e=0;e<=1;e++)
                   printf("%d%d%d%d%d\n",a,b,c,d,e);
     return 0;
}

方法2:根据二进制的规律,因为它有5位数,所以根据二进制规则,对应从左往右分别是24, 23,22,21,20, 从左往右在相应的位数除以它们的指数再取余。

#include <stdio.h>
int main()
{
int i;
for (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;
}
发布了36 篇原创文章 · 获赞 5 · 访问量 1026

猜你喜欢

转载自blog.csdn.net/matchless_QYW/article/details/104380456