本题没啥好说的,比较简单。 思路就是校B猜的数字将范围分割为两部分,右边的多就猜b + 1,否则猜b - 1。 但是此题有个坑: 题目中说到1<=b<=n<=10^9,即存在b = n = 1的情况,此时只能猜1. 如果这种情况未考虑,只能ac40%!
#include<iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n = 0, b = 0;
while(cin >> n >> b)
{
if (n == 1) cout << 1 << '\n';
else if (n >= b * 2) cout << b + 1 << '\n';
else cout << b - 1 << '\n';
}
}