2015-09-05 6 views
-2

SO Я написал этот фрагмент, но он не работает.Loop (1 + x + x ** 2 + x ** 3 + x ** 4 .... n) не работает

x=1 
sum1=0 
n=int(input("enter how long the series should be")) 
print (x) 
for a in range (1,n): 
    sum1=sum1+(sum1**a) 
    print(sum1) 
    a=a+1 
print("the sum of the series is",sum1) 

Выход был:

enter how long the series should be5 
1 
0 
0 
0 
0 
the sum of the series is 0 
>>> 
+2

Вам не нужно увеличивать 'a' –

+0

Вы не хотите' х ** Ā'? – jtbandes

+0

Спасибо всем. –

ответ

3

Уведомление вы не используете вход x в любом месте контура. Это потому, что sum1 ** a должен быть x ** a. Кроме того, вы хотите использовать range(1, n+1), так как второй аргумент должен быть больше, чем наибольшее значение, которое вы хотите произвести.

Incrementing a как вы, безвредный, но ненужный; цикл for сам обновляет значение a на каждой итерации. (Приращение a на верхних цикла может вызвать проблемы, поскольку a будет иметь неверное значение, когда вы используете его в расчете.)

+1

Также упоминайте, что ему не нужно увеличивать 'a' в цикле и что диапазон должен быть от 1 до * n + 1 * –

0

использование х в вашем уравнении sum1=sum1+(sum1**a). Таким образом, ваш модифицированный эк должен быть sum1=sum1+(x**a)

x=1 
sum1=0 

n=int(input("enter how long the series should be")) 
    print (x) 
    for a in range (1,n): 
    sum1=sum1+(x**a) 
    print(sum1) 
    a=a+1 
print("the sum of the series is",sum1) 
+1

Пожалуйста, перефразируйте ваше предложение (значение несколько перевернуто) и исправьте отступ python. –

+0

@HuguesFontenelle сделал это спасибо. –

+0

все еще неправильно, к сожалению .. Я отправлю свой собственный ответ тогда. –

0
x=1 
sum1=0 
n=int(input("enter how long the series should be")) 
print (x) 
for a in range (1,n): 
    sum1 += (x**a) 
    print(sum1) 
print("the sum of the series is", sum1) 
+1

Это не отвечает на вопрос плаката; этот ответ - только код и не дает никаких указаний, почему это работает, а код плаката - нет. – Foon

Смежные вопросы