进制转换——>十进制数转二进制数

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;
}
发布了28 篇原创文章 · 获赞 13 · 访问量 460

猜你喜欢

转载自blog.csdn.net/yo_u_niverse/article/details/105386421
今日推荐