Предмет: Информатика, автор: achekh

Зайдя в класс, Вова увидел на доске три числа, записанные в ряд. Он не заметил никакой взаимосвязи между ними, и ему сказали, что изначально чисел было четыре и разности между четвёртым и третьим, третьим и вторым, вторым и первым равнялись друг другу. Иными словами, на доске была записана арифметическая прогрессия из четырёх чисел. Однако затем одно из чисел с доски стёрли.

Помогите Вове придумать и дописать на доску какое‑нибудь число так, чтобы описанное условие снова начало выполняться.

Приложения:

mrusskih384: Какой ответ?

Ответы

Автор ответа: SheWhoRunsOnTheWaves
1

Ответ:

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

Похожие вопросы
Предмет: Русский язык, автор: стальной123456789
Предмет: Математика, автор: vladbezdetko098