题目描述:
一个聪明人在猜价格的比赛上,猜出了一系列的二分后得到的值(左+右整除2,下取整),从而轻松获得了胜利。
在他回家后,他开始回想起自己猜数的整个历史过程……
每次,他会得到一个高了或者是低了的回复,直到“正确”的声音响起。
可是他怎么也想不起,物品到底是什么价格了,你能从他获得的提示中,判断出物品是什么价格吗?
代码:
package lanqiao;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
String s = sc.nextLine();
int mid = 0,l = 1,r = n;
for(int i = 0;i < s.length();i ++)
{
mid = (l + r)/2;
if(s.charAt(i) == 'y'){
break;
}
else if(s.charAt(i) == 'u')
{
l = mid + 1;
}
else if(s.charAt(i) == 'd')
{
r = mid - 1;
}
}
System.out.println(mid);
}
}