牛客对应题目链接:奇数位丢弃_牛客题霸_牛客网 (nowcoder.com)
一、分析题目
通过⼀两个例子的模拟,可以发现:每次起始删除的下标都是 2 的次方。根据这个规律,找到最后⼀次删除的起始位置的下标即可。
二、代码
#include <iostream>
using namespace std;int main()
{int n;while(cin >> n) // 多组输⼊{int ret = 1;while(ret - 1 <= n) ret *= 2;cout << ret / 2 - 1 << endl;}return 0;
}
三、反思与改进
找规律这类题目需要多写几个样例,这样比较容易得出结论,不能光想、乱猜。