C++ (for) 循环:计算 y=n/(n+1)

c++ (for) loop :calculating y=n/(n+1)!

本文关键字:n+1 for 循环 C++ 计算      更新时间:2023-10-16

编写一个程序来解决以下等式

 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;

在许多数学场景中,"-"或你所说的号也可以作为减法。

您有两种选择:

  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;
}