输出1-64二进制中1位奇数个的二进制代码

来源:互联网 发布:澳洲国立大学博士知乎 编辑:程序博客网 时间:2024/06/06 13:00

对于长度为6位的一个01串,每一位都可能是0或1,一共有64种可能。它的前几个是:
  000000
  000001
  000010
  000011
  000100
  有这些01串中,有一些01串的1的个数是奇数个,这部分01串的前几个是:
  000001
  000010
  000100
  000111
  001000
  001011
  请按从小到大的顺序输出这些01串。

#include "stdafx.h"#include <iostream>using namespace std;void inita(int n,int a[]);int main(int argc, char* argv[]){    int a[7];    for(int i=0;i<64;i++)        inita(i,a);    return 0;}void inita(int n,int a[]){    int flag=0;    for(int i=0;i<6;i++){        a[i]=n%2;        if(a[i]==1) flag++;        n=n/2;    }    a[6]=flag;    if(a[6]%2!=0){    for(int i=5;i>=0;i--)        cout<<a[i];    cout<<endl;    }}

首先根据运算,将二进制代码存储到数组中,并且标记二进制代码中1的个数,存储到数组的最后一个元素中,输出时判断输出即可。

阅读全文
0 0
原创粉丝点击