我的任务是编写一个程序来计算标题中提到的系列。一切似乎在程序中都运行良好,但方程式错误。
#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;
}
任何帮助将不胜感激。谢谢!
答案 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),依此类推。