问个问题

灌水区

程序中`f(x)`中循环每循环一次就能把`x`的二进制表示下最低一个`1`变为`0`,如把`11`(即`1011`)变为`10`(即`1010`),所以`f(x)`功能为输出`x`的二进制表示下`1`的个数 而`g(x)`即求`x`二进制下最低一位`1`(即`lowbit(x)`,可以问问度娘)
by ABCDTNT__ @ 2021-09-22 13:41:05


所以`511998=(1111100111111111110)2`,`f(511998)=16`,`g(511998)=2`
by ABCDTNT__ @ 2021-09-22 13:43:07


`f(x)+g(x)=16+2=18`,因此输出`18`
by ABCDTNT__ @ 2021-09-22 13:43:47


@[ABCDTNT](/user/229445) Thanks
by mzyc_jx @ 2021-09-22 13:45:03


|