问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
…
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
思考:从小到大输出32行01字串就是将10进制0-31个数字用二进制进行输出,所以第一步要构思如何将10进制转换为2进制,第二步,将0-31的循环嵌套在外面就好了。
# include <stdio.h>
int main()
{
int i,c,n,a,f[5];
for(n=0;n<32;n++)//0-31个数
{
a=n;
for(i=4;i>=0;i--)//将10进制转换为二进制
{
c=a/2;
f[i]=a%2;
a=c;
}
for(i=0;i<=4;i++)//输出一个二进制数字
printf("%d",f[i]);
printf("\n");
}
return 0;
}