zoukankan      html  css  js  c++  java
  • nyoj412_bitset_

    Same binary weight

    时间限制:300 ms  |  内存限制:65535 KB
    难度:3
     
    描述

    The binary weight of a positive  integer is the number of 1's in its binary representation.for example,the decmial number 1 has a binary weight of 1,and the decimal number 1717 (which is 11010110101 in binary) has a binary weight of 7.Give a positive integer N,return the smallest integer greater than N that has the same binary weight as N.N will be between 1 and 1000000000,inclusive,the result is guaranteed to fit in a signed 32-bit interget.

     
    输入
    The input has multicases and each case contains a integer N.
    输出
    For each case,output the smallest integer greater than N that has the same binary weight as N.
    样例输入
    1717
    4
    7
    12
    555555
    样例输出
    1718
    8
    11
    17
    555557
    #include <iostream>
    #include <cstdio>
    #include <bitset>
    
    using namespace std;
    
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF){
            bitset<32> b(n);
            int j;
            int cou=0;
            for(int i=0;i<32;i++){
                if(b[i]){
                    cou++;
                }
                if(b[i]&&!b[i+1]){
                    j=i;
                    b[i]=false;
                    b[i+1]=true;
                    break;
                }
            }
            cou--;
    
                for(int k=0;k<cou;k++){
                    b[k]=true;
                }
                for(int k=cou;k<j;k++){
                    b[k]=false;
                }
    
            printf("%ld
    ",b.to_ulong());
            //cout<<b.to_ulong()<<endl();
    
        }
        return 0;
    }
  • 相关阅读:
    【模板】并查集
    P1063能量项链
    多维动归第一题
    7.14测试
    7.12测试
    7.10测试
    几种display:table-cell的应用
    instanceof和typeof的区别
    右侧悬浮广告
    JavaScript判断浏览器类型及版本
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/5903750.html
Copyright © 2011-2022 走看看