抽彩游戏:产生一个随机的数值组合,数值不能重复,最后升序排列。

tech2022-09-05  93

/** *@author Cay Horstmann *另解:也可用ArrayList实现 */ import java.util.Arrays; import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("总共能抽几次?"); int k = sc.nextInt(); System.out.println("能抽到的最大数字是:"); int n = sc.nextInt(); //将原始数据传入集合 int [] nums = new int[n]; for (int i = 0; i < nums.length; i++) { nums[i] = i + 1; } //用第二个数组存放抽取出来的值 int [] result = new int[k]; //抽取k个值 // Math.random()方法将返回一个0~1之间的值 for (int i = 0; i < result.length; i++) { int r = (int) (Math.random() * n); result[i] = nums[r]; //把数组最后一个元素拿来补充不符的元素的位置,因为后面一步需要删除最后一个元素 nums[r] = nums[n - 1]; //删除最后一个元素 n--; } //排序 Arrays.sort(result); System.out.print("抽到的数字按升序排列为:"); for(int r : result) { System.out.print(r + " "); } System.out.println(""); //上面的foreach循环完之后代码就结束了 //下面这行是把分散的数字放进[]里 System.out.println(Arrays.toString(result)); } }
最新回复(0)