zoukankan      html  css  js  c++  java
  • 未来的一个要参加蓝桥杯,在这里记录下笔记

    基础练习 01字串  

    问题描述

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

    00000

    00001

    00010

    00011

    00100

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

    当做完做到这道题的时候看晚上的答案时,惊到了没有找到我这种类似的解法。

    #include <cstdio>
    #include <iostream>
    #include <bitset>
    using namespace std;

    void Bin(int n){
      bitset<5> bitset2(n);
      cout<< bitset2 <<endl;
    }
    int main (){
      for (int i=0;i<32;i++){
      Bin(i);
      }
    }

    一:暴力(这个可以有)
    #include <iostream>
    using namespace std;
    int main()
    {
    cout<<"00000"<<endl;
    cout<<"00001"<<endl;
    cout<<"00010"<<endl;
    cout<<"00011"<<endl;
    cout<<"00100"<<endl;
    cout<<"00101"<<endl;
    cout<<"00110"<<endl;
    cout<<"00111"<<endl;
    cout<<"01000"<<endl;
    cout<<"01001"<<endl;
    cout<<"01010"<<endl;
    cout<<"01011"<<endl;
    cout<<"01100"<<endl;
    cout<<"01101"<<endl;
    cout<<"01110"<<endl;
    cout<<"01111"<<endl;
    cout<<"10000"<<endl;
    cout<<"10001"<<endl;
    cout<<"10010"<<endl;
    cout<<"10011"<<endl;
    cout<<"10100"<<endl;
    cout<<"10101"<<endl;
    cout<<"10110"<<endl;
    cout<<"10111"<<endl;
    cout<<"11000"<<endl;
    cout<<"11001"<<endl;
    cout<<"11010"<<endl;
    cout<<"11011"<<endl;
    cout<<"11100"<<endl;
    cout<<"11101"<<endl;
    cout<<"11110"<<endl;
    cout<<"11111"<<endl;
    return 0;
    }


    // 方法二:五层循环法
    #include <iostream>
    using namespace std;
    int main()
    {
    int a,b,c,d,e;
    for(a=0;a<2;++a)
    for(b=0;b<2;++b)
    for(c=0;c<2;++c)
    for(d=0;d<2;++d)
    for(e=0;e<2;++e)
    cout<<a<<b<<c<<d<<e<<endl;
    return 0;
    }

    // 方法三:模拟二进制运算

    当时有想过模拟二进制运算

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
    int i,j;
    string str="00000";
    for(i=0;i<32;++i)
    {
    cout<<str<<endl;
    str[4]+=1;
    for(j=4;j>=0;--j)
    {
    if(str[j]=='2')
    {
    str[j-1]+=1;
    str[j]='0';
    }
    }
    }
    return 0;
    }


    // 方法四:十进制转换二进制法

    #include <iostream>
    using namespace std;
    int main()
    {
    for(int i=0;i<32;i++){
    cout<<i%32/16<<i%16/8<<i%8/4<<i%4/2<<i%2<<endl;
    }
    return 0;
    }
    五:

    #include <iostream>
    using namespace std;
    int main(){
    for(int i=0;i<=31;i++)
    {
    int a[5]={0};
    int num=i;
    int z=0;
    while(num!=0)
    {
    a[z]=num%2;
    z++;
    num/=2;
    }
    for(int j=4;j>=0;j--)
    cout<<a[j];
    cout<<endl;
    }
    return 0;
    }

  • 相关阅读:
    PAT-1020 Tree Traversals
    PAT- 1014 Waiting in Line
    Python稀疏矩阵运算
    阿里云Hadoop集群DataNode连接不上NameNode
    运行python “没有那个文件或目录3” 或 “/usr/local/bin/python3^M: bad interpreter: 没有那个文件或目录” 错误
    #!/usr/bin/python3 和 #!/usr/bin/env python3的区别
    VBoxManage安装
    Redhat终端中文乱码解决
    Redhat更换yum源
    Redhat乱码
  • 原文地址:https://www.cnblogs.com/wszme/p/10444223.html
Copyright © 2011-2022 走看看