【发布时间】:2021-06-08 15:10:07
【问题描述】:
我有这个练习“编写一个程序,构造一个包含数字 1 到 100 的 ArrayList 并将它们打印出来。然后向用户询问一个数字,并删除该数字的所有倍数(除了number 本身)从列表中,并再次打印列表。例如,如果用户选择 5,它将从列表中删除 10、15、20、25、30 等。"
而且我似乎无法完成第二部分(删除所有倍数)
到目前为止,这是我所拥有的:
package ArrayList1To100;
import java.util.ArrayList;
import java.util.Scanner;
public class OneToHundreed {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1; i <= 100; i++) {
list.add(i);
}
System.out.println(list);
System.out.println("Next part of the exercise\n_________________________");
System.out.println("Please enter a number");
final int input = sc.nextInt();
int i = 2;
int x = i * input;
while (list.contains(x)) {
list.remove(x - 1);
}
System.out.println(list);
}
}
我知道我的删除部分有缺陷,因为它只删除了一个数字。 我已经尝试过使用 if 语句和一段时间。但我似乎找不到联系。
【问题讨论】:
-
问问自己如何获得给定数字的所有倍数。您知道您的列表是从
1到100。所以......如果用户输入5,你如何得到1和100之间的所有5的倍数?当你得到它时,你只需要做list.remove(multiple);就可以了。试着用简单的话来描述它,一步一步来。然后你会发现你可以很容易地将这些步骤转换成代码。 -
是的。我只是学习的“基本”练习。
-
将查看所有内容。谢谢你。 @BenjaminM,好点。将尝试逐步查看
标签: java arrays loops arraylist