Собственно сабж, проверял на куче разных пар, все работает отлично, единственное, на что грешил, это что в вариант с else числа выводит не по модулю, в итоге запихнул с модулем но разницы нету, все равно проверку не проходит.
Если вдруг смущает код по типу if (abs(abs(a) - 10) < abs(abs(b) - 10)) где 2 раза используется абсолютное значение, то это сделано, чтобы можно было корректно пройти по пути например a = 8, b = -8
package com.javarush.task.task04.task0409;
import java.util.Random;
/*
Ближайшее к 10
*/
public class Solution {
public static void main(String[] args) {
displayClosestToTen(8, 11);
displayClosestToTen(7, 14);
displayClosestToTen(-8, 11);
displayClosestToTen(8, -11);
displayClosestToTen(-8, -11);
displayClosestToTen(8,-8);
}
public static void displayClosestToTen(int a, int b) {
if (abs(abs(a) - 10) < abs(abs(b) - 10))
System.out.println(a);
else if (abs(abs(a) - 10) > abs(abs(b) - 10))
System.out.println(b);
else{
int[] arr={a, b};
Random r = new Random();
int randomNumber = r.nextInt(arr.length);
System.out.println(abs(arr[randomNumber]));
}
// напишите тут ваш код
}
public static int abs(int a) {
if (a < 0) {
return -a;
} else {
return a;
}
}
}