2017-03-05 33 views
0

我給了一個任務來找出前n個奇數的平方和,其中n由用戶給出。前n個奇數的平方和

這個任務是;

The script only takes one input, so do not 
# include any input command below. The print commands below are already given. 
# Do not alter the print commands. Do not add any other prints commands. 

r = range(1, n + 1)   # prepare the range 
result = 0     # initialise the result 
for k in r:     # iterate over the range 
    result = result + k  # update the result 

    compute the sum of the squares of the first n odd numbers, and print it 

這就是我迄今爲止所做的;

r = range(1, n ** n, 2)   
result = 0     
for k in r:     
    result = result + k  

我知道的範圍內是錯誤的,因爲當我跑了,我用5正和我預想的答案是165,因爲前5個奇數的平方是165,而是我得到了144

請幫忙

+0

您的代碼是沒有意義的。你沒有采用第一個「n」個奇數,或者將它們平方。也許你應該首先解決問題:第一步,你可以創建第一個「n」奇數的列表或迭代器嗎? – jonrsharpe

+1

sum(k * k在範圍內(1,2 * n,2)) –

+0

@babyblue這就是您需要的整個代碼(除了輸入'n'和打印) – DeepSpace

回答

1

我們想要遍歷奇數,所以如果我們想做n個奇數,我們需要上升到2 * n。例如,5個奇數將是1,3,5,7,9和2 * 5 = 10,但我們只需要每隔一個數字,因此我們有命令r = range(1, n * 2, 2)

然後,我們從零開始並添加到它,因此result = 0

現在,我們通過我們的範圍(R)迭代,並加入到我們的結果迭代的平方,因此result = result = (k * k)

整體而言,我們有:

r = range(1, n * 2, 2) 
result = 0 
for k in r: 
    result = result + (k * k) 
print result 
+1

我寫信給你作爲評論者,因爲你的答案已被標記爲其質量。當您提交答案時,請您解釋您的代碼,並在可能的情況下顯示可以獲得的典型結果。我們重視您的意見和改進,這會對未來讀者的答案產生很大影響。 –

0

n**n是n的n次冪。因此,與n=5,你的範圍爲1至3125之間的所有奇數它應該是奇數1和10

r = range(1, n ** n, 2) 
#    ^replace n**n by ... 

之間要進行求和廣場,所以你應該計算方塊:

result = result + k 
#     ^something is missing here 
1
r = range(1, n + 1,2) 
print r 
result = 0     
for k in r:     
result = result + k ** 2 
print result 

如果你傳遞n = 5,那麼它將打印35,因爲範圍是1,3,5,並且在迭代期間它跳過步驟2,4 ..你正在考慮像1,3,5,7,9 = 165,但實際結果將是35,所以而不是n = 5,你可以傳遞n = 7,所以當你傳遞n = 7時,範圍將是[1,3,5,7,9]和輸出t將是165

+0

請在回答自己。本身,答案是相當低的質量。 – SZenC

+0

@SzenC感謝您的建議:) –