2014-11-15 79 views
-4

寫程序來解決下面的公式C++(for)loop:計算y = n /(n + 1)!

Y=1/2!‐2/3!+3/4!‐4/5!+….n/(n+1)! 

負號混淆了我,還有一個階乘標誌呢! 它是否像程序應該有階乘,我必須從數字中減去數字?

int n,a; 
double b=2,y,sum=0; 
cin>>n; 
for (a=1;a<=n;a++) 
{ 
    y=a/b++; 
    sum=sum+y; 
} 
cout<<y<<endl<<sum; 
return 0; 
+0

你要求我們解釋的分配? –

+1

我想知道如何使減法它是令人困惑的。 –

+0

如果你要求我們做你的功課,至少使用適當的英語。 –

回答

0

在許多數學場景中,「 - 」或者你所呼叫的標誌,也可以作爲減法。

你有兩個選擇:

  1. 否定值,則添加。
  2. 減去該值。

通過優先順序,你需要找出分母的階乘,由分母分裂分子,最後加或減總。

編輯1:
另一種解決方案是每個迭代處理兩個術語。添加第一個,減去第二個。

double term1 = 0.0; 
double term2 = 0.0; 
double result = 0.0; 

for (...) 
{ 
    term1 = /*...*/; 
    term2 = /*...*/;' 
    result = result + term1; 
    result = result - term2; 
} 

或者你可以有一個標誌變量,由符號變量乘術語:

double sign = 1.0; 
double result = 0.0; 
for (...) 
{ 
    double term = /* ... */; 
    result = result + sign * term; 
    sign = sign * -1.0; 
}