#54279: 給C/C++的捧油


hch980506@gmail.com (申有娜我老婆)


本題的關鍵不在於計算 N + 1
而在於觀察 二進位中「從最低位開始連續的 1」正好對應進位的次數。
 
程式碼:
#include <stdio.h>

int main() {
    int N;
    while (scanf("%d", &N) && N != 0) {
        int times = 0;
        while (N & 1) {
            times++;
            N >>= 1;
        }
        printf("%d\n", times);
    }
}