题目链接:点击打开链接
给你一个盒子里面的细菌数,每个细菌可以分裂成两个细菌,问你最初盒子里面有几个细菌。
相当于问你这个数的二进制表示中有几个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;
}