1018 - C语言程序设计教程(第三版)课后习题6.8
时间限制:1秒
内存限制:128兆
题目描述
有一分数序列:
2/1 3/2 5/3 8/5 13/8 21/13…
求出这个数列的前N项之和,保留两位小数。
输入
N
输出
数列前N项和
样例输入
10
样例输出
16.48
本题数列为 2/1, 3/2, 5/3, 8/5, 13/8, 21/13…
不难发现从第二个数据开始,分母为上一个数的分子,分子为上一个数分子加分母的和 ,由此求解
另外由输出要求可知,要用浮点型输出
#include<stdio.h>
int main()
{
float a, b, s, i, n, c;
a=1; //对第一个数的分母赋值
b=2; //对第一个数的分子赋值
s=0;
scanf("%f",&n);
for(i=0;i<n;i++)
{
s=s+b/a; //求和
c=b;
b=a+c; //使分子变为上一个数分子分母和
a=c; //使分母变为上一个数的分子
}
printf("%.2f",s);
return 0;
}