1.十进制数转二进制数
代码描述:
#include <stdio.h>
int main()
{
int i, j = 0, n;
int a[20];
scanf("%d", &n);
if (n == 0)
printf("0\n");
while (n)
{
a[j] = n % 2;
++j;
n = n /2;
}
for (i = j; i > 0; i--)
printf("%d", a[i - 1]);
printf("\n");
return 0;
}
2.蓝桥杯试题 01字串
问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
<以下部分省略>
代码描述(一):
直接用暴力解题法,用五个for循环嵌套来实现
#include <stdio.h>
int main()
{
int i,j,k,m,n;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
for(m=0;m<2;m++)
for(n=0;n<2;n++)
printf("%d%d%d%d%d\n",i,j,k,m,n);
return 0;
}
代码描述(二):
在十转二进制的基础上做出一些修改
#include <stdio.h>
int main()
{
int i, j , n,k;
int a[5] = { 0 };
for (k = 0; k<32;k++)
{
j = 0,n=k;
while (n)
{
a[j] = n % 2;
++j;
n = n / 2;
}
for (i = 5; i > 0; i--)
printf("%d", a[i - 1]);
printf("\n");
}
return 0;
}