作為2進制的加法,從k加1變成k+1可能會出現若干進位。如1011加1就會有2個進位。給定n,從0開始不停地加1直到n,計算在此過程中總共會有多少次進位。
1,0
2,1
3,1
4,3
5,3
6,4
7,4
8,7
9,7
10,8
11,8
12,10
16,15
32,31
64,63
你會發現2^n的都是2^n-1
其他13=8+4+1=(8-1)+(4-1)+(1-1),有多少個2^n,則減多少次1。
直接根據位運算即可求
Input
輸入的每一行有單獨的一個值n。n=0標志輸入結束Output
對于輸入的每一行,使用單獨一行輸出對應結果。Sample Input
2 5 10 0
Sample Output
1 3 8總結規律:
1,0
2,1
3,1
4,3
5,3
6,4
7,4
8,7
9,7
10,8
11,8
12,10
16,15
32,31
64,63
你會發現2^n的都是2^n-1
其他13=8+4+1=(8-1)+(4-1)+(1-1),有多少個2^n,則減多少次1。
直接根據位運算即可求