Задача 1. Улица По одну сторону улицы находятся дома с нечётными номерами (1, 3, 5, …), по другую сторону – с чётными (2, 4, 6, …). Дом № 1 находится напротив дома № 2, дом № 3 – напротив дома № 4 и т. д. До соседнего дома нужно идти вдоль по улице одну минуту, неважно, с какой стороны улицы он находится (то есть от дома № 1 нужно идти одну минуту как до дома № 3, так и до дома № 4). До дома, стоящего напротив, идти не нужно. Человек вышел на улицу из дома номер A и должен дойти до дома номер B. Определите, сколько минут ему нужно идти вдоль по улице. Программа получает на вход два различных целых положительных числа A и B, не превосходящие 2×109 , – номера домов. Программа должна вывести одно число – искомое количество минут. Пример входных и выходных данных Ввод 1 8 Вывод 3
Проверим, находятся ли дома A и B на одной стороне улицы. Если они находятся на одной стороне, то нужно просто посчитать разницу между номерами домов (|B - A|) и поделить на 2 (так как каждую минуту человек может пройти к следующему дому).Если дома на разных сторонах, то найдем наименьшее четное число между A и B (если A четное, то это само число, иначе это A + 1). После этого посчитаем разницу между этим числом и A, добавим к ней разницу между B и этим числом и поделим на 2.Вернем полученное значение как результат.
Python код решения:
A = int(input()) B = int(input()) if A % 2 == B % 2: # Если дома на одной стороне result = abs(B - A) // 2 else: # Если дома на разных сторонах even_between = A + 1 if A % 2 != 0 else A result = (even_between - A) + (B - even_between) // 2 print(result)
Алгоритм решения:
Проверим, находятся ли дома A и B на одной стороне улицы. Если они находятся на одной стороне, то нужно просто посчитать разницу между номерами домов (|B - A|) и поделить на 2 (так как каждую минуту человек может пройти к следующему дому).Если дома на разных сторонах, то найдем наименьшее четное число между A и B (если A четное, то это само число, иначе это A + 1). После этого посчитаем разницу между этим числом и A, добавим к ней разницу между B и этим числом и поделим на 2.Вернем полученное значение как результат.Python код решения:
A = int(input())B = int(input())
if A % 2 == B % 2: # Если дома на одной стороне
result = abs(B - A) // 2
else: # Если дома на разных сторонах
even_between = A + 1 if A % 2 != 0 else A
result = (even_between - A) + (B - even_between) // 2
print(result)