#27573: C++ 一行解


fire5386 (fffelix)

School : No School
ID : 115822
IP address : [180.217.9.10]
Last Login :
2021-12-04 09:06:31
a414. 位元運算之進位篇 -- c910335 | From: [111.243.21.75] | Post Date : 2021-10-16 10:53

算要進位幾次就是數二進位中後面有幾個1,而"__builtin_ctz"這個function會回傳一個整數在二進位中後面有幾個0

所以我們只要把n的所有0和1顛倒,然後數後面有幾個0就可以了

顛倒n在二進位的0和1可以用 "~" 符號

while(cin >> n && n) 

cout << __builtin_ctz(~n) << "\n";

 
ZeroJudge Forum