P1582 倒水

#include <iostream>
#include <cstdio>
using namespace std;
int ans=0,n,k;
int work(int x){
    int num=0;
    for(;x;x-=x&-x)    num++;
    return num;
}
int main(){
    scanf("%d%d",&n,&k);
    if(work(n)<=k){
        printf("0");
        return 0;
    }
    while(work(n)>k)    ans+=n&-n,n+=n&-n;
    printf("%d",ans);
    
    return 0;
}
View Code

这个题告诉我们求一的个数的方法,其实不算难吧,但是进制的题思维量是摆在这了

posted @ 2019-10-08 10:55  sdzmq  阅读(98)  评论(0编辑  收藏  举报