题目分析
题目要求很简单:按顺序输出 0 到 32 的二进制形式。
由于 32 在二进制下最多占 5 位,所以每个数都按 5 位二进制输出即可,高位补零。输出序列形如:
00000
00001
00010
......
依次输出到 32 即可。
参考代码
#include <iostream>
#include "stdio.h"
#include "stdlib.h"
using namespace std;
int main(int argc, char *argv[])
{
int a[5];
int num = 0;
for (int i = 0; i < 5; i++)
{
a[i] = 0;
}
int ge, ss, b, s, q;
for (int i = 0; i < 32; i++)//循环32次 0~32
{
//10进制转换为2进制
num = i;
q = num / 2;
a[4] = num % 2;
s = q / 2;
a[3] = q % 2;
b = s / 2;
a[2] = s % 2;
ss = b / 2;
a[1] = b % 2;
ge = ss / 2;
a[0] = ss % 2;
//输出该二进制
for (int i = 0; i < 5; i++)
{
cout << a[i];
}
cout << endl;
}
return 0;
}