Зайдя в класс, Вова увидел на доске три числа, записанные в ряд. Он не заметил никакой взаимосвязи между ними, и ему сказали, что изначально чисел было четыре и разности между четвёртым и третьим, третьим и вторым, вторым и первым равнялись друг другу. Иными словами, на доске была записана арифметическая прогрессия из четырёх чисел. Однако затем одно из чисел с доски стёрли.
Помогите Вове придумать и дописать на доску какое‑нибудь число так, чтобы описанное условие снова начало выполняться.
Ответы
Ответ:
a = int(input())
b = int(input())
c = int(input())
dif_ab = b - a
dif_bc = c - b
x = 0
pos = 0
if dif_ab == dif_bc:
x = c + dif_ab
pos = 4
if abs(dif_ab) > abs(dif_bc):
x = a + dif_bc
pos = 2
if abs(dif_ab) < abs(dif_bc):
x = b + dif_ab
pos = 3
print(x)
print(pos)
Объяснение:
1) Введем 3 числа, написанные на доске. Назовем их a, b, c:
- a = int(input())
- b = int(input())
- c = int(input())
2) Вычислим разницу между a и b, а потом между b и c:
- dif_ab = b - a
- dif_bc = c - b
3) Заведем переменные x и pos, в которых будем хранить четвертое стертое число и его позицию соответственно:
- x = 0
- pos = 0
4) Теперь сравниваем разницы. Если они одинаковые, то стерли какое-то крайнее число ⇒ вариантов 2: можно дописывать в конец, а можно в начало. Будем дописывать в конец: приравниваем pos к 4 (последняя позиция), а к x прибавляем разницу (шаг прогрессии):
- if dif_ab == dif_bc:
- x = c + dif_ab
- pos = 4
5) Если разница между a и b больше, чем разница между b и c (берем по модулю, чтобы учесть отрицательный шаг), то это, например, ситуация из примера: 10, 16, 19. Тогда dif_ab = 6, dif_bc = 3. Или такая ситуация: 4, 2, 1, где dif_ab = -2, dif_bc = -1. Очевидно, что здесь надо ставить на вторую позицию, а чтобы найти искомое число, надо к самому первому прибавить шаг (который хранится в dif_bc):
- if abs(dif_ab) > abs(dif_bc):
- x = a + dif_bc
- pos = 2
6) Теперь рассмотрим обратную ситуацию: abs(dif_ab) < abs(dif_bc). Это, например: 1, 2, 4 (dif_ab = 1, dif_bc = 2) или 4, 3, 1 (dif_ab = -1, dif_bc = -2). Тогда ставим на третью позицию и прибавляем ко второму числу шаг прогрессии (хранится в dif_ab):
- if abs(dif_ab) < abs(dif_bc):
- x = b + dif_ab
- pos = 3
7) Выводим сначала число, а потом его позицию:
- print(x)
- print(pos)
#SPJ1