1.创建一个死循环,让用户输出1-100范围内的数字,符合条件跳出循环
2.以我们自己猜测数字的思想,比如输入88我们首先猜测50,然后数字提示小了,我们就是取以50为最小范围-100的中间值75,然后提示小了,我们继续猜测75-100的中间值82,提示小了,猜90大了,最大范围就是82-90.猜测86,小了最后猜测88.
这个过程就是如果提示小了我们会赋值给给最小的取值范围,如果猜测大了就把最大的取值范围赋值.
我们设置两个数一个是最小范围数为1,一个是最大范围数为100,然后取他们的中间数50(101/2=50,因为是int类型所以是50,看不懂可以去看以前的文章有解释为什么),然后如果提示数字小了的话就把这个数字赋值给最小范围数,然后要+1,因为这个数已经猜过了,在使用它就没有任何意义.罪过提示数字大了,就把这个数字赋值给最大范围数,然后-1,道理同上.
也可以设置一个次数,循环jiu++记录一下.
欢迎指导更好的方法.
Scanner sc=new Scanner(System.in);
int i;
while (true){
System.out.println("请输入一个0-100的整数");
i= sc.nextInt();
if (i>=1&&i<=100){
break;
}
}
int minnum =1;
int maxnum=100;
int guessnum;
int count=0;
while (true){
count++;
guessnum=(minnum+maxnum)/2;
if (i>guessnum){//如果输入的数字比猜测的数字小就把guessnum+1的值赋给minnum
minnum=guessnum+1;
System.out.println("猜测的数字是"+guessnum+"数字小了");
}else if (i<guessnum){
maxnum=guessnum-1;
System.out.println("猜测的数字是"+guessnum+"数字大了");
}else {
System.out.println("猜测了"+count+"次,恭喜猜对了");
break;
}
}