1018 - C语言程序设计教程(第三版)课后习题6.8

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;

}

猜你喜欢

转载自blog.csdn.net/w__000000wbt/article/details/83688860