题目1:二进制中1的个数

给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。

输入格式

第一行包含整数n

第二行包含n个整数,表示整个数列。

输出格式

共一行,包含n个整数,其中的第i个数表示数列中的第i个数的二进制表示中1的个数。

输入样例:

5
1 2 3 4 5

输出样例:

1 1 2 1 2

代码:

#include<iostream>
#include<vector>
#include<string>
using namespace std;

//十进制转换二进制
int func(int n) { int num = n; int count = 0; while (num > 0) { int remainder = num % 2; if (remainder == 1) { count++; } num /= 2; } return count; } int main() { int n; cin >> n; vector<int> vec; for (int i = 0; i < n; i++) { int tmp; cin >> tmp; vec.push_back(tmp); } for (int i = 0; i < n; i++) { cout << func(vec[i]) <<" "; } return 0; }

 

posted on 2022-09-20 09:30  yc-limitless  阅读(50)  评论(0)    收藏  举报