題目連結 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;
}
沒有留言:
張貼留言