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;
    }
    


  • 相关阅读:
    Asp.net 中 listbox 滚动条 定位 火麒
    Silverlight跨域访问WCF服务 火麒
    网页加载速度优化技巧
    很漂亮的login
    ireport
    方法1,定位,相当于四周受力
    方法2,平移
    大端小端数据存储方式
    c++中RTTI
    C语言细节数组a+1和&a+1
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697798.html
Copyright © 2011-2022 走看看