4、猜数字
很多人都玩过这个游戏:甲在心中想好一个数字,乙来猜。每猜一个数字,甲必须告诉他是猜大了,猜小了,还是刚好猜中了。下列的代码模拟了这个过程。其中用户充当甲的角色,计算机充当乙的角色。为了能更快地猜中,计算机使用了二分法。
System.out.println("请在心中想好一个数字(1~100),我来猜");
System.out.println("我每猜一个数字,你要告诉我是“猜大了”,“猜小了”,还是“猜中”");
Scanner scan = new Scanner(System.in);
int v1 = 1;
int v2 = 100;
for(;;)
{
int m = (v1 + v2)/2;
System.out.println("我猜是:" + m);
System.out.println("1.猜得太大了");
System.out.println("2.猜得太小了");
System.out.println("3.猜中!");
System.out.print("请选择:");
int user = Integer.parseInt(scan.nextLine());
if(user==3) break;
if(user==1) _____________;
if(user==2) _____________;
}
很多人都玩过这个游戏:甲在心中想好一个数字,乙来猜。每猜一个数字,甲必须告诉他是猜大了,猜小了,还是刚好猜中了。下列的代码模拟了这个过程。其中用户充当甲的角色,计算机充当乙的角色。为了能更快地猜中,计算机使用了二分法。
System.out.println("请在心中想好一个数字(1~100),我来猜");
System.out.println("我每猜一个数字,你要告诉我是“猜大了”,“猜小了”,还是“猜中”");
Scanner scan = new Scanner(System.in);
int v1 = 1;
int v2 = 100;
for(;;)
{
int m = (v1 + v2)/2;
System.out.println("我猜是:" + m);
System.out.println("1.猜得太大了");
System.out.println("2.猜得太小了");
System.out.println("3.猜中!");
System.out.print("请选择:");
int user = Integer.parseInt(scan.nextLine());
if(user==3) break;
if(user==1) _____________;
if(user==2) _____________;
}
解决方案 »
- 几道SCJP的题目,朋友们帮忙解答一下
- 在Awt中如何通过代码触发事件
- swing中如何实现输入提示
- DB的表中没有要插入的纪录,insert却不成功,报的错误还是DUP_VAL_ON_INDEX,请问这是怎么回事?
- 考的是什么问题啊?看不出来。请给分析一下题,谢谢
- 请问 int arrary[]; 和int[] arrary;的区别是什么?
- 一个奇怪的JAVA中文问题!请各位大虾指明!!!
- vj++打开Form1.java的时候,出现错误:"java.lang.IllegalAccessError: com/ms/wfc/util/Debug$Switch"
- 新手疑问!!!!
- public static String与 public static final String的区别
- java 类中直接写方法
- Java中scroll pane的使用(一)-- 动态改变其client的大小
if(user==2) v1=m;
int v2 = 100;
for(;;)
{这个for用的和我有点像啊 打死不用while哈哈
把(v1,v2)这个范围内分为两个区间,一个是(v1,(v1+v2)/2)另一个是((v1+v2)/2,v2),m=(v1 + v2)/2
猜大了就从小区间里面继续猜,上界(v2)变成了m..
猜小了。。大。。下界(v1)变成了m..
然后知道猜对,你懂的