用户输入数字,系统用随机数来随机

用户输入数字,系统用随机数来随机的,加了个最大数和最小数限制。

本人初学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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值