用户输入数字,系统用随机数来随机的,加了个最大数和最小数限制。
本人初学java,有次搜了这个东西,但是要钱,我就写了出来,写的不怎么样,但是是自己写的。看看得了。
//int ran = new Random().nextInt(100-50+1)+50
int ran;
System.out.println("请输入一个一百万以内的整数,让系统来猜");
int scan = new Scanner(System.in).nextInt();
//定义一个最大值,最大值要和系统输入的最大值相同;
int max = 1000001;
//定义一个最小值,最小值统一为0;
int min = 0;
ran = new Random().nextInt(1000001);
for(int i=1;i>=1;i++) {
System.out.println("系统猜的第"+i+"次");
System.out.println(ran);
if(ran==scan) {
System.out.println("对了");
break;
}else if(ran<scan) {
System.out.println("小了");
// 判断系统输入值比用户输入值小了,然后最小值替换为最新输入的系统随机值
min = ran;
// 最大值为max-min+min-1。为了不让随机出现相同的数值
// 最小值为min+1,因为限定最小值是min的话下一次随机的值包含min,
// 所以min+1是为了不让随机出现相同的数值
ran = new Random().nextInt(max-min-1)+min+1;
System.out.println((min)+"~~"+(max));
}else if(ran>scan) {
System.out.println("大了");
// 判断系统输入值比用户输入值大了,然后最大值替换为最新输入的系统随机值
max = ran;
ran = new Random().nextInt(max-min-1)+min+1;
System.out.println((min)+"~~"+(max));
}
}
主要是加了个最大值和最小值限定,原来的代码随机到666666要循环大概150万次左右,加了限定之后循环40次以内就可以随机到。
ran = new Random().nextInt(max-min-1)+min+1;