用C++编写一个程序,对一个简单的序列求和:1/N + 2/N-1 + 3/N-2+ ...不适用



我的任务是编写一个程序来计算标题中提到的序列。在程序中一切似乎都很好,但等式是错误的。

#include <iostream>
using namespace std;
int main()
{
  double n;
  double sum = 0;
  cout << "Enter a number: ";
  cin >> n;
  for (double i = 1; i <= n; i++)
  {
    sum = (1 / i) + (2 / i - 1) + (3 / i - 2);
  }
  cout << "Sum is: " << sum << endl;
  return 0;
}

任何帮助将不胜感激。谢谢!

你的等式中有很多问题。首先,每次迭代都会将一个新值保存到总和中,这不是您想要的。其次,该系列的其余部分在哪里?为什么只将前三个元素存储到总和中?

我建议改用这段代码:

#include <iostream>
using namespace std;
    int main()
    {
      double n;
      double sum = 0;
      cout << "Enter a number: ";
      cin >> n;
      for (double i = 1; i <= n; i++)
      {
        sum += i / (n-i+1);
      }
      cout << "Sum is: " << sum << endl;
      return 0;
    }

这样,sum 从零开始,并在每次迭代时将序列的一个元素添加到总和中,从 1/n 开始,然后是 1/n + 2/(n-1),依此类推。

最新更新