我试图确定一个数组列表中的数字是否可以由一个数组列表中的所有数字划分。我下面的代码输出listdiv
列表中所有被listdivisor
除数禁用的数字。我想输出列表中所有除数可除的值,而不是其中任何一个。例如,如果我有listdiv = [1,2,3,,5,8]和listdivisor = [2,4]。预期的输出应该是8,但是此代码输出2和8。
谢谢您的辛苦!
for (int i = 0; i < listdiv.size(); i++) {
for (int c = 0; c < listdivisor.size(); c++) {
if (listdiv.get(i) % listdivisor.get(c) == 0) {
System.out.println("final results are : " + listdiv.get(i));
}
}
}
最佳答案
您的错误似乎是由于您计算出除数达到第一个匹配的除数后所有除数都可除。相反,您需要添加逻辑来跟踪所有除数,并确保每个除数都工作给定。
System.out.println("final results are: ");
for (int i=0; i < listdiv.size(); i++) {
boolean isDivisible = true;
for (int c=0; c < listdivisor.size(); c++) {
if (listdiv.get(i) % listdivisor.get(c) != 0) {
isDivisible = false;
break;
}
}
if (isDivisible) {
System.out.println(listdiv.get(i));
}
}