Почему не работает мой код для решения задачи?
Напишите программу, которая считывает строку с числом n, которое задаёт количество чисел, которые нужно считать. Далее считывает n строк с числами x_i, по одному числу в каждой строке. Итого будет n+1n+1 строк.
При считывании числа x_i программа должна на отдельной строке вывести значение f(x_i). Функция f(x) уже реализована и доступна для вызова.
Функция вычисляется достаточно долго и зависит только от переданного аргумента x. Для того, чтобы уложиться в ограничение по времени, нужно избежать повторного вычисления значений.
Sample Input:
5 5 12 9 20 12Sample Output:
11 41 47 61 41
Такой код работает не правильно:
def f(x):
return x**3
d = {}
a = []
for _ in range(int(input())):
x = int(input())
while True:
try:
a.append(d[x])
break
except KeyError:
d[x] = f(x)
print(*a)