Если цифры составляют часть системы символов, в них обычно заметен некий смысл, например, они являются математической прогрессией или определённой комбинацией, то есть каким-то образом связаны друг с другом.
Дэн Браун. Код да Винчи
Зайдя в класс, Вова увидел на доске три числа, записанные в ряд. Он не заметил никакой взаимосвязи между ними, и ему сказали, что изначально чисел было четыре и разности между четвёртым и третьим, третьим и вторым, вторым и первым равнялись друг другу. Иными словами, на доске была записана арифметическая прогрессия из четырёх чисел. Однако затем одно из чисел с доски стёрли.
Помогите Вове придумать и дописать на доску какое‑нибудь число так, чтобы описанное условие снова начало выполняться.
Формат входных данных:
Программа получает на вход три целых положительных числа, не превосходящих 105 каждое, по одному в строке, в том порядке, в котором они шли на доске.
Формат выходных данных:
В первой строке выведите число, которое Вове необходимо написать. Можно доказать, что это число обязательно должно быть целым. В записи этого числа не должно быть десятичной точки, то есть вывод «13.0» вместо «13» является неправильным.
Во второй строке выведите целое число от 1 до 4 — место, на которое его необходимо написать. 1 означает, что указанное число необходимо выписать перед первым из трёх приведённых во входных данных чисел, 2 — между первым и вторым, 3 — между вторым и третьим и 4 — после третьего числа.
Гарантируется, что входные данные таковы, что существует хотя бы один способ дополнить их до арифметической прогрессии. Если подходящих способов несколько, выведите любой из них.
Замечание: В примере из условия Вова увидел на доске числа 10,16 и 19. Если он напишет на доску между первым и вторым из них число 13, то в получившейся четвёрке чисел 10 13 16 19 разность между четвёртым и третьим (19−16), третьим и вторым (16−13) и вторым и первым (13−10) окажется одна и та же, поэтому эта четвёрка будет арифметической прогрессией.
1 Ответ
Решение:
l,n=[3,612],[]
for i in range (len (l)-1):n+=[l[i+1]-l[i]]
step = min(n)
for i in range(len(l)-1):
if l[i+1]-l[i]!=step:l.insert(i+1,l[i]+step)
print(l)
[3,6,9,12]