抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

总时间限制: 1000ms 内存限制: 65536kB

描述

给定一个十进制整数 N,求其对应 2 进制数中 1 的个数

输入

第一个整数表示有 N 组测试数据,其后 N 行是对应的测试数据,每行为一个整数。

输出

N 行,每行输出对应一个输入。

样例输入

1
2
3
4
5
4
2
100
1000
66

样例输出

1
2
3
4
1
3
6
2

Code

C

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <math.h>
int main() {
int N, a, b, count = 0;
scanf("%d", &N);
for(int i = 1; i <= N; i++) {
scanf("%d", &a);
while(a > 0) {
b = a % 2;
a /= 2;
if(b == 1) {
count++;
}
}
printf("%d\n", count);
count = 0;
}
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <bits/stdc++.h>
using namespace std;
int main() {
int N, temp, count = 0;
cin >> N;
for(int i = 1; i <= N; i++) {
cin >> temp;
while(temp > 0) {
if(temp % 2 == 1) count++;
temp /= 2;
}
cout << count << endl;
count = 0;
}
}