有一个分数序列,求出这个数列的前20项之和

有一个分数序列:2/1 , 3/2 , 5/3 , 8/5 , 13/8 , 21/13 ...求出这个数列的前20项之和

特点:

前一项的分子为后一项的分母,前一项的分子、分母之和为后一项的分子

下面给出两种做法:

#include  
#define n 20 //求解项数
int main()
{
	int i;//循环变量
	double a=2,b=1;//a,b分别为某项的分子、分母
	double  sum=0;
	double temp;//临时变量
	for (i=1;i<=n;i++)
	{
		sum+=a/b;
		temp=a;//记录前一项分子
		a=a+b;//前一项分子与分母之和为后一项分子
		b=temp;//前一项分子为后一项分母
   }
   printf("前%d项之和为:sum=%9.7f\n",n,sum);
   return 0;
}
测试结果:


下面再给出用数组存储办法,代码如下:

#include
#define n 20 //求解项数
int main()
{
	double sum=0;
	int s1[20]={2,3};//存储分子
	int s2[20]={1,2};//存储分母
	int i;

	for(i=0;i<18;i++)
	{
		s1[i+2]=s1[i]+s1[i+1];
		s2[i+2]=s2[i]+s2[i+1];
	}
	
	for(i=0;i
测试结果:

你可能感兴趣的:(c语言-基础练习,分数序列求和)