传送门:P3152 正整数序列
题目意思就是说问你一个数进行多少次+1/-1的操作能变成0。
那你就做一个k=1,在k<=n时一直ans++,大于时就跳出去,输出ans。
代码很简单:
#include <bits/stdc++.h>
using namespace std;
int n;
int main() {
cin >> n;
register int k = 1, ans = 1;
while(k <= n) {
ans ++;
k += (k + 1);
}
cout << ans;
return 0;
}