Напишите программу, на вход которой подаётся список чисел одной строкой. Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка. Например, если на вход подаётся список "1 3 5 6 10", то на выход ожидается список "13 6 9 15 7" (без кавычек).
Если на вход пришло только одно число, надо вывести его же.
Вывод должен содержать одну строку с числами нового списка, разделёнными пробелом.
Sample Input 1:
1 3 5 6 10
Sample Output 1:
13 6 9 15 7
Sample Input 2:
10
Sample Output 2:
10
Мой код:
# put your python code here
a = [int(i) for i in input().split()]
if len (a) == 1:
print (a)
elif len (a) > 1:
b = []
for i in a:
if i == a[0]:
b.append (a[1] + a[-1])
elif i == a[-1]:
b.append (a[-2] + a[0])
else:
b.append (a[i - 1] + a[i + 1])
print (b)
Failed test #1 of 16. Runtime error
This is a sample test from the problem statement!
Test input:
1 3 5 6 10
Correct output:
13 6 9 15 7
Your code output:
Error:
Traceback (most recent call last):
File "jailed_code", line 13, in <module>
b.append (a[i - 1] + a[i + 1])
IndexError: list index out of range