CSES 1146 - Counting Bits
1.0s 512M你的任務是計算 \(1\) 到 \(n\) 之間所有整數的二進位表示中,一共有幾個為 1 的位元。
輸入格式
唯一一行輸入有一個整數 \(n\)。
輸出格式
輸出 \(1\) 到 \(n\) 之間所有整數的二進位表示中為 1 的位元總數。
範例輸入 1
7
範例輸出 1
12
說明:\(1 \ldots 7\) 的二進位表示分別是 1、10、11、100、101、110、111,因此總共有 12 個為 1 的位元。
限制
- \(1 \le n \le 10^{15}\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入