显然答案是n的最近二次幂减一,也就是所谓的high_bit-1
#include <bits/stdc++.h> #define int unsigned long long using namespace std; int high_bit(int x) { return 1ull << (31 - __builtin_clz(x)); } signed main() { int n; cin >> n; cout << high_bit(n)-1; return 0; }
注册一个 TZHSOJ 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 TZHSOJ 通用账户