用C ++编写一个简单系列的程序:1 / N + 2 / N-1 + 3 / N-2 + ... N / 1

时间:2017-01-17 18:35:58

标签: c++ loops sum

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

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

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

1 个答案:

答案 0 :(得分:5)

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

我建议改用此代码:

#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),依此类推。