算法基础-01序列【简单模拟】

题目描述
Time Limit: 1000 ms
Memory Limit: 256 mb
对于长度为6位的一个01串,每一位都可能是01,一共有64种可能。它的前几个是:
000000
000001
000010
000011
000100
请按从小到大的顺序输出这6401串。
输入输出格式
输入描述:
输出描述:
输出64行,每行一个01串。

方法一:暴力枚举。。。(这个就不用多说了吧)

方法二:六层循环
#include<stdio.h>
int main()
{
    for(int a=0;a<2;a++)
        for(int b=0;b<2;b++)
            for(int c=0;c<2;c++)
                for(int d=0;d<2;d++)
                    for(int e=0;e<2;e++)
                        for(int f=0;f<2;f++)
                        printf("%d%d%d%d%d%d\n",a,b,c,d,e,f);
    return 0;
}

方法三:将这些数看做是(十进制对二进制)的转换而来的

首先,你得了解十进制对二进制的转换过程,代码如下:
#include<stdio.h>
int main()
{
    int f[10];
    int x,rem,i=0;
    scanf("%d",&x);
    while(x)
    {
        rem=x%2;
        x/=2;
        f[i++]=rem;
    }
    while(i>0)
    {
        printf("%d",f[--i]);
    }
    return 0;
}

--------我是分割线----------

有了转换的基础,题目就很容易了:
#include<stdio.h>
int func(int x)
{
    int i,f[6];
    for(i=0;i<6;i++)
    {
        f[i]=x%2;
        x/=2;
    }
    for(i=5;i>=0;i--)
    {
        printf("%d",f[i]);
    }
}
int main()
{
    int i;
    for(int i=0;i<64;i++)
    {
        func(i);
        printf("\n");
    }
    return 0;
}

好了,看到这里基本上这章就结束啦。如果您觉得这期内容对你有帮助的话,欢迎点赞,评论,收藏,谢谢啦。

小伙伴们,强烈安利一波👇:
推荐一款轻便实用的Chrome插件(限时免费下载,赠去广告特权)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值