2011-12-05 81 views
-1

我有這樣的問題:循環爲一系列

編寫一個程序以顯示系列的總和1 + 1/2 + 2/3 + 3/4的+ ... + (正1)/ n(用於循環)。

我對這個系列沒有很好的理解,如果n = 6請親切地解釋一下。(不需要編碼)。

+0

那麼......哪種算法? –

+1

@Adban:即「告訴我該怎麼做?」不,這不是你的導師的用途嗎? –

+0

爲什麼會倒票! – Aan

回答

3

對於n = 6,則需要計算1 +(1/2)+(2/3)+(3/4)+(4/5)+(5/6)

+0

感謝您的簡單解釋。 – Aan

3

問題要求您填寫以下程序的詳細信息:

sum = 0; 
for (int i=1; i<=n; ++i) { 
    sum += ??? 
} 
return sum; 

其中???應該給你以下值:

i | ??? 
------- 
1 | 1 
2 | 1/2 
3 | 2/3 
4 | 3/4 
5 | 4/5 
6 | 5/6 
. 
. 
. 
n | (n-1)/n 
0

寫一個循環,爲n每個價值評估(n-1)/n,並增加了結果的一些變量。 「有些變數」就是答案。

設置n=6

+0

不正確,嘗試n = 1。 –

+0

@yi_H或'n = 0「。你想說什麼?他想理解算法,而不是C++中的代碼,它處理DBZ .. – Kashyap

+0

因爲循環從n = 1開始,我不明白n = 0如何相關..但是n = 1是因爲它給出了該系列的第一個元素錯誤的結果。 –

1

這很簡單。最大的提示是第n項本身:(n-1)/n

除第一項,每個其他術語可通過(i-1)/i形式,這意味着該算法的表達式來表示歸結爲:

double sum = 1.0; //first term 
for(int i = 2 ; i <= n ; ++i) //2nd to nth term! 
    sum += (i-1.0)/i; 

爲什麼我寫(i-1.0)而不是(i-1)

您需要自己弄清楚,因爲我已經解釋過幾乎所有的代碼。

+5

這個問題被標記爲家庭作業(所以制定出所有的細節可能不符合他的最佳利益)。 – PengOne

+1

不是那麼簡單 - 代碼總是給出1. –

+0

@MikeSeymour:呵呵。固定。 – Nawaz

0

該系列的最後一項也可以寫爲n/(n + 1)其中n是一個迭代的值。