高中生程式解題系統:a414: 位元運算之進位篇

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

題目連結 http://zerojudge.tw/ShowProblem?problemid=a414

底下程式碼是用位元運算解。

程式碼:
#include <cstdio>
using namespace std;

int main() {
    int n;

    while( scanf("%d", &n) != EOF ) {
        if( n == 0 )
            break;

        int carryOnCnt = 0;
        if( n & 0x00 )
            carryOnCnt = 0;
        else {
            while( n & 0x01 ) {
                carryOnCnt++;
                n = n >> 1;
            }
        }

        printf("%d\n", carryOnCnt);
    }

    return 0;
}

沒有留言: