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;
    }
  • 相关阅读:
    操作系统的一些琐碎知识
    # mysql _linux
    # linux GIT 配置连接
    linux maven 安装
    idea 与 git
    服务器搭建——jenkins构建后应该做什么(3)
    # 服务器搭建——jenkins搭建至构建成功(2)
    # 服务器搭建——入门踩坑 (1)
    # ajax入门(1)
    # heapsort
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/5903750.html
Copyright © 2011-2022 走看看