算要進位幾次就是數二進位中後面有幾個1,而"__builtin_ctz"這個function會回傳一個整數在二進位中後面有幾個0
所以我們只要把n的所有0和1顛倒,然後數後面有幾個0就可以了
顛倒n在二進位的0和1可以用 "~" 符號
while(cin >> n && n)
cout << __builtin_ctz(~n) << "\n";