Codeforces Round #320 (Div. 2) 579A Raising Bacteria(脑洞)

来源:互联网 发布:软件测试工程师难学不 编辑:程序博客网 时间:2024/05/17 08:38

题目链接:点击打开链接


给你一个盒子里面的细菌数,每个细菌可以分裂成两个细菌,问你最初盒子里面有几个细菌。

相当于问你这个数的二进制表示中有几个1.


AC代码:


#include "iostream"#include "cstdio"#include "cstring"#include "algorithm"using namespace std;int x, ans = 1;int main(int argc, char const *argv[]){    scanf("%d", &x);    while(x > 1) {        if(x & 1) ans++;        x /= 2;    }    printf("%d\n", ans);    return 0;}


1 0