传送门: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;
} 









