南阳oj 1的个数

#include<iostream>
#include<math.h>
using namespace std;
int main ()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int count=0;
while(n!=0)
{
if(n%2==1)
count++;
n=n/2;
}
cout<<count<<endl;
}
return 0;
}

二进制的求法,n对2求余为二进制的最低位,每次n变为原来的一半,直到为零。

posted @ 2018-07-25 15:05  换牙  阅读(94)  评论(0编辑  收藏  举报