#P1054. 【模板】函数式交互题
【模板】函数式交互题
题目描述
有一个隐藏的数 ,经过猜测得到它。
本题是一道交互题,只能使用 C++ 语言,你不需要也不应该实现 main 函数。
你需要在代码中引入 guess.h。
你需要实现以下函数:
int sol(int l,int r);- 该函数需要返回一个值,表示数 。
- 保证数 满足 。
你可以调用以下函数:
int guess(int a);- 该函数输入一个正整数 ()
- ,则返回 ;若 ,则返回 ;若 ,则返回 。
- 该函数在一组数据中不能被调用超过 次。
- 如果猜测次数超过次数,其返回值未被定义。
样例
考虑以下调用:
sol(1,2);
我们进行以下猜测:
guess(2),返回值为 。
这里我们已经知道 的值,因此返回 。
数据范围和限制
程序每次运行,sol 函数将会调用 次。()。
对 的数据,,。
额外信息
致出题人
如果你的题目没有也不需要标准答案,可以参考本题配置。
标程
本题标程,供参考:
#include "guess.h"
int sol(int l,int r){
while(l<r){
int mid=(l+r)>>1;
int res=guess(mid);
if(res==1)r=mid-1;
else if(res==-1)l=mid+1;
else return mid;
}
return l;
}