Условие:
По одну сторону улицы находятся дома с нечётными номерами (1, 3, 5, …), по другую сторону – с чётными (2, 4, 6, …). Дом № 1 находится напротив дома № 2, дом № 3 – напротив дома № 4 и т. д. До соседнего дома нужно идти вдоль по улице одну минуту, неважно, с какой стороны улицы он находится (то есть от дома № 1 нужно идти одну минуту как до дома № 3, так и до дома № 4). До дома, стоящего напротив, идти не нужно.
Определите, сколько минут ему нужно идти вдоль по улице. Программа получает на вход два различных целых положительных числа A и B. Программа должна вывести одно число – искомое количество минут.
Логика решения задачи:
1. Так как неважно, пойдет ли человек от четного дома или от нечетного, стоящего напротив заданного, сразу во избежании путаницы в дальнейшем мы проверим введенные пользователем цифры на четность и если они нечетны - итерируем их.
2. Теперь пользователь всегда будет находится на четной стороне улицы. Далее методом подбора смотрим:
Из дома 2 до дома 4 идти 1 минуту;
Из дома 2 до дома 6 идти 2 минуты;
Из дома 2 до дома 8 идти 3 минуты.
Т.е. всегда выполняется условие: Отнять от одной цифры вторую и результат разделить на два. Для того случая, если пользователь пойдет от дома с большим номером, к дому с меньшим номером - вычислять будем по модулю.
Решение:
Проверяем введенные пользователем цифры и если нужно итерируем их:
получим:
Выводим ответ на экран:
в итоге:
Заметим, что приведение к целому числу в строке 9 - обязательно, иначе ответ будет дробным 2,0 - и ответ вам не зачтут: