AcWing 801 二進位制中1的個數

2021-10-08 03:23:24 字數 567 閱讀 1183

給定乙個長度為n的數列,請你求出數列中每個數的二進位制表示中1的個數。

輸入格式

第一行包含整數n。

第二行包含n個整數,表示整個數列。

輸出格式

共一行,包含n個整數,其中的第 i 個數表示數列中的第 i 個數的二進位制表示中1的個數。

資料範圍

1≤n≤100000,

0≤數列中元素的值≤109

樣例輸入樣例:

51 2 3 4 5

輸出樣例:

1 1 2 1 2

通過運用lowbit(x)來計算x的最後一位1, 然後將x - lowbit(x),每減一次,都將res = 0 加上1, 直到x為0時停止,這時就能輸出1的個數。

#include

using

namespace std;

intlowbit

(int x)

intmain()

printf

("%d "

, res);}

return0;

}//來自acwing

801 二進位制中1的個數

題目 學習了位運算,的用法 思路位運算 以下2步用於看一下第k位數 這樣如果我們先令k等於數的長度 1,然後依次輸出第k位在二進位制中的數,然後讓k k 0 這樣我們就可以得到某個數的二進位制表示了 以10為例 int x 10 for int k 3 k 0 k cout x 1 includeu...

演算法練習 801 二進位制中1的個數

801.二進位制中1的個數 給定乙個長度為n的數列,請你求出數列中每個數的二進位制表示中1的個數。輸入格式 第一行包含整數n。第二行包含n個整數,表示整個數列。輸出格式 共一行,包含n個整數,其中的第 i 個數表示數列中的第 i 個數的二進位制表示中1的個數。資料範圍 1 n 1000001 n 1...

二進位制 二進位制中1的個數

題目 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函式輸出 2。示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 0000000...