Проблема связана с вашей логикой условия if.
if (i != d && arr[i] / arr[d] == 1 && arr[i] % arr[d] == 0)
1) Вы должны убедиться, что вы не делите на один и тот же элемент массива. Вместо этого вы можете инициализировать значение d
из i+1
вместо 0
.
2) Делить на должно быть равно 1
3) Там модуль должен быть 0, потому что логики деления недостаточно для этой логики.
Как сказал @Eran 9/8
и 9/9
также приведут к 1, но с проверкой модуля мы можем гарантировать, что мы печатаем, что только 9
повторяет
public static void findRepeating(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int d = 0; d < arr.length; d++) {
if (i != d && arr[i] / arr[d] == 1 && arr[i] % arr[d] == 0) {
System.out.println(arr[i] + " is repeating");
}
}
}
}
public static void main(String[] args) {
int[] myArray = { 69, 7, 8, 9, 90, 666, 69, 420, 2 };
findRepeating(myArray);
}