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

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

原文地址:https://www.cnblogs.com/jindui/p/11634200.html