请编写一个c++程序 【程序功能】求级数的前n项之和。 【编程要求】(1). 编写函数double fun(double x, int n),其功能是对于给定的x计算下列级数前n项的和,函数返回计算结果。 f(x)=x/(1*1)-x3/(1*2)+x5/(2*3)-x7/(3*5)…+(-1)i*x(2*i+1) /(fi*fi+1) 注:x后面的数字是指数。 其中:fi(i=0,1,2,3…,n)是Fibonacci数列中的第i项, Fibonacci数列是:1,1,2,3,5,8,13,21,34, … … 。 (2). 编写main函数,接收从键盘输入的x和n的值,调用函数fun计算级数前n项的和,并按下列形式输出结果。(n<20) 注:不允许使用pow()函数。 【测试数据与运行结果】 测试数据:n=10,x=0.5 运行结果:f(0.5,10)=0.442232
时间: 2024-03-09 14:47:32 浏览: 160
以下是符合要求的 C++ 程序:
```cpp
#include<iostream>
using namespace std;
double fun(double x, int n) {
double res = 0;
int fi = 1, fj = 1;
for(int i = 0; i < n; i++) {
int fj1 = fi + fj;
res += (i % 2 == 0 ? 1 : -1) * x * (2 * i + 1) / (fi * fj);
fi = fj;
fj = fj1;
}
return res;
}
int main() {
double x;
int n;
cout << "请输入 x 和 n 的值:";
cin >> x >> n;
double res = fun(x, n);
cout << "f(" << x << "," << n << ")=" << res << endl;
return 0;
}
```
程序分为两部分,第一部分实现了 `fun` 函数,用于计算级数前 n 项的和。在函数内部,我们使用 `fi` 和 `fj` 来表示 Fibonacci 数列中的相邻两项,每次迭代更新 `res` 的值。注意,我们需要使用 `i % 2 == 0 ? 1 : -1` 来判断当前项的正负号。
第二部分实现了 `main` 函数,用于接收输入值,调用 `fun` 函数并输出结果。
阅读全文