习题4-3 求分数序列前N项和

习题4-3 求分数序列前N项和 (15 分)

本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

输入格式:

输入在一行中给出一个正整数N。

输出格式:

在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。

输入样例:

20

输出样例:

32.66

 代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int N = 0;
	scanf("%d", &N);
	double num = 0;
	double sum = 0;
	int count = 0;//计数器
	double i = 1;//分母
	double j = 2;//分子
	num = 1.0*j / i;
	while (count < N)
	{
		double tmp;
		sum = sum + num;	
		tmp = j;//在赋值之前一定要先把之前的j分子保存
		j = i + j;
		i = tmp;
		num = j/ i;
		count++;
	}
	printf("%.2f\n", sum);
	system("pause");
	return 0;
}

测试结果:

习题4-3 求分数序列前N项和