编写程序以解决以下等式
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 :(得分:0)
在许多数学场景中,&#39; - &#39;或者你所谓的否定符号,也可以作为减法。
您有两种选择:
按优先顺序,你需要计算分母的阶乘,用分母除以分子,最后从总数中加上或减去。
编辑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;
}