public class Solution {
public static void main(String[] args) {
closeToTen(8, 11);
closeToTen(14, 7);
}
public static void closeToTen(int a, int b) {
if (abs(a=10-a)<abs(a=10-b))
System.out.println(a);
if (abs(a=10-a)>abs(a=10-b))
System.out.println(b);
if (a==b)
System.out.println(b);
}
public static int abs(int a) {
if (a < 0) {
return -a;
} else {
return a;
}
}
}
SAS
18 уровень
Почему не проходит проверку? Результат вроде правильный на запуске.
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ruslan
26 февраля 2018, 19:46
В 8 и 11 строках не присваивайте переменной "а" значение выражения. а просто сделайте обращение
0
Roman Pryshchepa Java Developer Expert
26 февраля 2018, 08:32
А ты замени строки 3 и 4:
на вот такие:
и проверь.
Ты ж понимаешь, что результат должен быть идентичным. :) +1
--------Master
25 февраля 2018, 20:34
В этой строке у тебя сначала переменной а присваивается значение (10-а), для него вычисляется abs, затем а присваивается уже значение 10-b и вычисляется результат abs для этого значения. Полученные результаты abs сравниваются, но в следующих if проверяется уже зачем-то измененное дважды значение а, а не нормальное.
0