第一次写
运用迭代法求,需要创建8个变量, x2 = 2,x1=3,xn=0,y2=1,y1=2,yn=0,n=3和sum
x2代表Xn-2,x1代表Xn-1 y2,y1以此类推
前两项不能放在循环中求,单独求出
其余的在循环中求,从n=3求到n=30
每求完一项,都要对Xn-2,Xn-1,Xn进行替换,即把各项往前提一位
如图把x2赋值给x1,x1赋值给xn y同理
xn/yn即为每项所求 注意先求再赋值
#include<iostream>
using namespace std;
int main()
{
double x2 = 2,x1=3,xn=0,y2=1,y1=2,yn=0,n=3;
double sum = x2/y2+x1/y1;
for (n = 3; n <= 30; n++)
{
xn = x2 + x1;
yn = y2 + y1;
sum += xn / yn;
x2 = x1;
x1 = xn;
y2 = y1;
y1 = yn;
}
cout << sum;
return 0;
}
现在理解的更透彻,有了更好的解法,也是回应同学的疑问
观察规律知道分子为前一个数的分子与分母之和
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
cin >> n;//求n项的和,n由自己输入
double sum = 0;//作为结果
float i = 1;//作为分母
float j = 2;//作为分子
while (i <= n)
{
sum += j / i;
j = j + i;//分子为前一个数的分子与分母之和
i++;
}
cout << sum;//输出结果
return 0;
}