问题及代码
/*
烟台大学计算机与控制工程学院
文件名称:分数序列
作 者:展一
完成时间:2016年10月20日
题目描述
有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写程序求出这个序列的前n项之和。
输入
输入只有一个正整数n,1≤n≤10
输出
1输出该序列前n项和,结果保留小数后6位。
样例输入
3
样例输出
5.166667
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
double j1=1,j2=0,j,k1=1,k2=1,k,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
j=j1+j2;
k=k1+k2;
sum=sum+k/j;
j2=j1;
j1=j;
k2=k1;
k1=k;
}
printf("%.6lf\n",sum);
return 0;
}
运行结果
知识点总结
循环结构的使用
因为double型比float型精度更准,所以建议使用double型
学习心得
本题对分子分母分别分析,不管分子还是分母,都是前两项和等于第三项。