Ошибка в коде. Помогите найти!
Помогите, пожалуйста, вот код:
x = int(input('Введите число: '))
sum_res = 1
start = 1
for number in range(start, 64, start * 2 + 1):
res = (x - number)
sum_res = sum_res * res
print(sum_res)
Нужен результат по формуле: res = (x - 1) * (x - 3) * (x - 7) * (x - 15)...... (x - 63)
В чем я ошибся?
Ответы (1 шт):
Автор решения: Dmitry
→ Ссылка
Коли нет обратной связи от ТС, брошу здесь это
Формирование членов ряда у вас не верно. Вы получаете не то, что указано в формуле. Мои предположения по этому поводу в виде кода
lst_ = []
start = 1
while True:
lst_.append(start)
start = start * 2 + 1
if start > 64:
break
Можно это написать короче.
Далее сам подсчет
sum_res = 1
for item in lst_:
sum_res *= (x - item)
При x равному одному из членов lst_ результат будет превращаться в ноль. Крайние случаи, которые должны быть учтены