При решении задачи через метод abs, в консоли получаем значения:
11
7
Пытаюсь понять почему.
Первый случай:
a 8; b 11
1.10 - 8 = 2.
2. 10 - 11 = -1.
После метода abs:
10 - 8: a не меньше 0, тогда значение а неизменно =2.
10 - b: а меньше 0, тогда значение возвращается со знаком "-", минус на минус даёт "+", тогда значение a=1.
Итог: 2 < 1 ложь, соответственно в консоли значение b (11);
Второй случай:
a 7; b 14
1.10 - 7 = 3.
2. 10 - 14 = -4.
После метода abs:
10 - 7: a не меньше 0, тогда значение а неизменно =3.
10 - 14: а меньше 0, тогда значение возвращается со знаком "-", минус на минус даёт "+", тогда значение a=4.
Итог: 3 < 4 правда, соответственно в консоли значение а (7);
Вопрос - я правильно понимаю, что метод abs в данном случае работает в соответствии с моими догадками минус на минус даёт "+" ?
Ярослав
35 уровень
Я правильно понимаю ?
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Кодер Кодерович
26 апреля 2018, 19:43решение
метод из доков
то есть, если передается в метод отрицательное знаечение, то на выходе оно становится -(-а) - положительным +2
Roman Pryshchepa Java Developer Expert
27 апреля 2018, 09:13
В этой задаче свой метод abs, но принцип тот же. :)
0
--------Master
26 апреля 2018, 16:33
Метод abs вычисляет обычный модуль числа, в данном случае - позволяет определить разницу между двумя числами
0
Ярослав QA Automation Test Engine в Ukraine Expert
26 апреля 2018, 19:36
Но вычисления которые я описал правдивы, или оно как-то по другому считается ?
0
--------Master
26 апреля 2018, 20:07решение
Да, вроде правильно. Главный смысл в том, что abs (a - b) всегда равно abs (b - a), т.е. ты именно считаешь, на сколько каждое из чисел удалено от требуемого (от 10) и сравниваешь эти разницы - какая меньше, то число и ближе.
+2