思路:
对于给出的每一个数的二进制可以转换为1 0 0 1等类似形式。那么可以考虑,每一个1都是可以从 最低位的1(代表最初一个细菌)转换过来,那么也就是转变为二进制无论有多少个1 就会最少情况下加多少个细菌
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{ int a;
scanf("%d", &a);
int i=0;
int bin[32];
while(a>0)
{
bin[i]=a%2;
a/=2;
i++;
}
int ans=0;
for(int j=i-1; j>=0; j--)
if(bin[j]==1)
ans++;
cout<<ans<<endl;
}