java如何完成这个题目?要求用基础的方法,是初学者,十分感谢了

2024-11-02 17:21:36
推荐回答(1个)
回答1:


import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// 接收输入的整数n(要产生的随机数的个数)
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// 产生n个随机数list
double[] list = new double[n];
for (int i = 0; i < n; i++) {
list[i] = Math.random();
}
// 接收输入的data(要查找的数)
double data = sc.nextDouble();
boolean flag = false;// 是否查找到
// 在list中查找data
for (int i = 0; i < n; i++) {
if (data == list[i]) {
System.out.println("比较次数:" + (i + 1) + " 位置:" + i);
flag = true;
}
}
if (!flag)
System.out.println("未查找到");
}

}

说实话,恰好输入一个和0到1之间的随机小数相等的数的概率几乎为零,这么写(老实地按你的意思写)基本上得到的输出都是"未查找到"

建议这样做


import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// 接收输入的整数n(要产生的随机数的个数)
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// 产生n个随机数list
int[] list = new int[n];
for (int i = 0; i < n; i++) {
list[i] = (int) (Math.random()*10);
}
// 接收输入的data(要查找的数)
int data = sc.nextInt();
boolean flag = false;// 是否查找到
// 在list中查找data
for (int i = 0; i < n; i++) {
if (data == list[i]) {
System.out.println("比较次数:" + (i + 1) + " 位置:" + i);
flag = true;
}
}
if (!flag)
System.out.println("未查找到");
}

}