2011-11-17 38 views
0

我試圖做到這一點:求和的查找計數和X

(n輸入數1 < = N < = 100時,首先,X = 0.1)

enter image description here

我不得不打印與求和和X-ES 的計數表我試圖解決這個遞歸,但它需要很長的時間:(

我只是想知道的算法。

我嘗試:

#include <iostream> 

using namespace std; 

int main() 
{ 
    int N; 

    cin >> N; 

    double x = 0.1, mx2 = -x*x*2; 
    int i; 
    double part = 1, sum = 1; 

    for (i = 2; i < N; i+=2) { 
    part *= mx2/((i-1)*i); 
    sum += part; 
    cout<<"sum= "<<sum<<endl; 
    } 

    return 0; 
} 

是嗎?

+0

@BartKiers:好的,我加了.. –

回答

3

要計算x^2n請注意,在上一步中,您有x^2(n-1),因此只需將其乘以x^2即可。

也用於計算(2n)!,在上一步中,您有(2(n-1))!,所以只需要乘以(2n-1)*2n

實際上只有一個額外的變量可以幫助你,它保存x^2n /(2n)的值!在每一步中,只需將其乘以下一步中的撥款值即可。

編輯: 您當前密碼的問題是在這條線:

cout<<"sum= "<<sum<<endl; 

原因COUT是非常耗時的工作,並在for循環每次迭代你想做到這一點。 取而代之的是,如果需要有這樣一個cout,創建char流並將你的總和的值插入到這裏,最後只需一個cout顯示所有結果。