本題雖然就是個水題,但是有不少陷阱。
首先,由於 $n$ 的範圍 $2^{64}$ ,因此必須 C++ 使用 uint64_t
。其次,達到四分之一的門檻是 $\geq$ 而同意大於不同意則是 $>$,但須注意 C++ 的除法總是向零取整,假若寫成 a >= n / 4
則會存在誤差。另外,Python 使用 `/' 運算子的結果是 float,其誤差在 $n$ 很大時誤差將很明顯。
因此,比較好的條件式是 a * 4 <= n \&\& a > b
,當然你若偏好位元運算可以寫成 a << 2
。