2015-09-05 143 views
-2

因此,我寫了這段代碼,但它似乎不起作用。循環(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) 

輸出是:你不使用你的輸入x

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

你並不需要增加'了' –

+0

你不想'X **了'? – jtbandes

+0

謝謝大家。 –

回答

3

公告中的任何地方循環。這是因爲sum1 ** a應該是x ** a。另外,您希望使用range(1, n+1),因爲第二個參數需要比您想要生成的最大值大一個。

增量a因爲你是無害的,但沒有必要; for循環本身在每次迭代中更新a的值。在你的公式sum1=sum1+(sum1**a)(遞增a在循環的頂部會造成問題,因爲當你在計算中使用它a會有錯誤的值。)

+1

還提到他不需要在循環中增加'a',範圍必須是從1到* n + 1 * –

0

使用X。 所以修改後的EQ應該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

相關問題