切換
舊版
前往
大廳
主題

ZeroJudge - e602: 12208 - How Many Ones Needed? 解題心得

Not In My Back Yard | 2020-01-13 14:43:50 | 巴幣 0 | 人氣 318

題目連結:


題目大意:
給定兩非負整數 a 、 b (0 ≦ a ≦ b ≦ 2000000000,a = b = 0 時代表輸入結束),試問 a (含)~ b (含)之間的所有數字的二進位表示法中出現過多少個「1」?



範例輸入:
5 10
20 30
0 0


範例輸出:
Case 1: 12
Case 2: 35


解題思維:
還記得這題嗎?用該題的方法求出 1 ~ a - 1 (如果 a ≧ 1 的話,a = 0 就直接當成是 0)有多少個「1」,以及 1 ~ b 有多少個「1」。後者減去前者即是所求。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作