zoukankan      html  css  js  c++  java
  • “蓝桥杯”基础练习:01字串

    问题描述

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

    00000

    00001

    00010

    00011

    00100

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

    输入格式
    本试题没有输入。
    输出格式
    输出32行,按从小到大的顺序每行一个长度为5的01串。
    样例输出
    00000
    00001
    00010
    00011
    <以下部分省略>


    心得:

    因为要从00000输出到11111,一共32行5列,一开始想着就开一个这么大的二维数组吧,挨个的更新每行元素就行呗,结果没我想的这么简单,因为下一行总是和前一行息息相关,而且在下一行没处理之前,它必须和上一行的数相同,要经常更新行元素。 比如一开始赋值全部为00000,当加一以后第二行变为00001,可是这时候第三行元素还仍然是00000呢,要在00001的基础上加1,它必须和上一行(第二行)元素相等才可以。后来一想,不用这么麻烦,既然需要更新,那就用一个s[5] 的简单数组来自己更新不就得了,加上31次,就这样。

    代码:

    #include <iostream>
    #include <string.h>
    using namespace std;
    int two[6];
    
    int main()
    {
        memset(two,0,sizeof(two));
        cout<<"00000"<<endl;
        for(int i=1;i<=31;i++)
        {
            two[5]++;
            if(two[5]==2)
            {
                two[4]++;
                two[5]=0;
            }
            if(two[4]==2)
            {
                two[3]++;
                two[4]=0;
            }
            if(two[3]==2)
            {
                two[2]++;
                two[3]=0;
            }
            if(two[2]==2)
            {
                two[1]++;
                two[2]=0;
            }
            for(int m=1;m<=5;m++)
                cout<<two[m];
            cout<<endl;
        }
        return 0;
    }
    


  • 相关阅读:
    JavaScript深入学习(四)DOM
    Python学习(六)简单例子
    Python学习(五)常见函数及控制结构
    Python学习(四)运算符
    Python学习(三)格式化输出
    Spark学习(二)scala语法
    JavaScript学习(三)深入学习
    表的完整性约束
    创建表的完整语法和基本数据类型
    mysql基础
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697798.html
Copyright © 2011-2022 走看看