校内第一次天梯赛T3

发布时间 2023-03-22 21:11:01作者: 96痴呆敲码

题目描述

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

00000

00001

00010

00011

00100

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

输入格式

本试题没有输入。

输出格式

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

样例输出content_copy

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

提示/说明

直接输出不得分。
------------------------------------------------
其他题太简单也没啥心得,就第三题纠结了一会,一眼求0-31二进制表示方法,写的题少没想到什么好方法,一开始想用位运算写但不知道哪里写错了,一直输出错误,不过感觉用位运算也有点小题大做了
常规写法(核心代码)
    int a[6]={0,0,0,0,0,0};
    int j=5;    
    while(i)
    {
        a[j--]=i%2;
        i/=2;
    }

位运算写法

    int a[6]={0,0,0,0,0,0};
    int j=5;    
    while(i)
    {
        if(i&1)
        a[j--]=1;
        i>>=1;
    }