• 放球


    题目描述:

    把 m(<2000) 个球放入编号为 0,1,2...,k-1 的 k 个盒中(m<2^k)要求第 i 个盒内必须放 2 ^ i只球。如果无法满足这一条件,就一个不放,求出放球的具体方案。

    输入:

    一个整数m。

    输出:

    每个盒中对应的球的数。

    样例输入:

    5

    样例输出:

    0:1
    1:0
    2:4

    注意:这道题和放苹果是完全不一样的……(别以为把苹果改成球是一样的……)
    分析一下题:
    有一个点要注意,二进制数的每一位都等于对应的10进制的2^i(i从0开始),所以可以把这道题看成是一个二进制就非常简单了:

     #include<cstdio>
        int n;
        int main(){
            scanf("%d",&n);
            for (int i=0;i<=11;i++){
            if ((n&(1<<i))!=0) {
                printf("%d:%d
    ",i,1<<i);
                n-=1<<i;
            }
            else printf("%d:0
    ",i);
            if (n==0) break;
        }
        return 0;
        }

    <<这个是位数右移(以前讲过,将来也会讲的),就相当于/2,是二进制中的特殊表达方法。
    这还有一个正常清真版的:

    #include<cstdio>
        #include<cmath>
        #include<cstring>
        #include<algorithm>
        int zxy(int a,int b,int c)
        {
        if(a>b)
        return c>b;
        return a<c;
        }
        #define BY Zhoier
        using namespace std;
        int main()
        {
        int i=0,k,n=1;
        scanf("%d",&k);
        while (k != 0)
        {
            printf("%d:%d
    ",i,k % 2 * n);
            n *= 2;
            i++;
            k /= 2;
        }
        return 0;
        }

    不知道从什么时候起喜欢写一些没用的东西了(。・∀・)ノ゙

  • 相关阅读:
    一键安装vsftpd服务并开通ftp账户
    mysql 利用新建从库 使用 start slave until 恢复方法
    使用ThinBackup插件备份 jenkins
    docker 日志清理
    mysql5.7 MGR配置
    mysql5.7 开启增强半同步复制
    网站qps计算方法
    mysql不支持emoji表情的问题的解决方法
    网络安全
    Cronjob 简介
  • 原文地址:https://www.cnblogs.com/Zhoier-Zxy/p/8067520.html
Copyright © 2020-2023  润新知