zoukankan      html  css  js  c++  java
  • 放球

    题目描述:

    把 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;
        }

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

  • 相关阅读:
    HereDOC案例
    array_number
    CodeMirror---实现关键词高亮
    webstorage的使用
    vue.js--绑定方法到window对象
    docker部署服务实现文件上传到本地问题解决
    ES6之map与set
    JAVA生成视频缩略图的两种方式
    vuex状态管理
    ELK日志分析平台
  • 原文地址:https://www.cnblogs.com/Zhoier-Zxy/p/8067520.html
Copyright © 2011-2022 走看看