码迷,mamicode.com
首页 > 其他好文 > 详细

__builtin_popcount() 函数

时间:2018-08-15 19:37:01      阅读:1028      评论:0      收藏:0      [点我收藏+]

标签:std   进制   搜索   int   amp   efi   its   uil   can   

详解

该函数的主要作用是计算一个数字的二进制中有多少个1,返回值就是其中1的个数。

它使用一张基于表的方法来进行位搜索,因此这个操作的执行效率很高

此处举一题

P1582 倒水

#include <bits/stdc++.h>
using namespace std;
#define lowbit(x) x&(-x)
int main()
{
    int n,k;
    scanf("%d%d",&n,&k);
    int ans=n;
    while(__builtin_popcount(n)>k)
    {
        n+=lowbit(n);
    }
    printf("%d\n",n-ans);
    return 0;
}

  

 

__builtin_popcount() 函数

标签:std   进制   搜索   int   amp   efi   its   uil   can   

原文地址:https://www.cnblogs.com/-xiangyang/p/9483374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!