a414

輸入說明 :

輸入的每一行有一個十進制正整數 N (1<=N<=2147483647)。輸入的最後一行有一個 0,代表輸入的結束,這個數字請勿做任何處理。

輸出說明 :

對於每個正整數 N ,請輸出以二進制計算 N+1 時所需的進位次數。

這題的題意是

1 2 1 10 ans 1

4 5 100 101 ans 0

7 8 111 1000 ans 3

17 18 10001 10010 ans 1

就是要你去看N轉成二進位,從第一位開始有幾個連續的1

while(scanf("%d",&n) && n)

要這樣寫是因為輸出最後一個會是0

#include<stdio.h>
int main()
{
    int n,count;
    while(scanf("%d",&n) && n)
    {
        count=0;
        while(n%2)
        {
            count++;
            n/=2;
        }
        printf("%d\n",count);
    }
}