C语言编程:有一分数序列:12,34,76,138,2110...求出这个数列的前20项之和

Python015

C语言编程:有一分数序列:12,34,76,138,2110...求出这个数列的前20项之和,第1张

思路:首先观察分子的规则是前一个分数的分子与分母的和,分母的规则是2468……偶数。

参考代码:

#include "stdio.h" 

int main() 

int n=1,m=2,i

double sum=0

for(i=0i<20i++){

sum+=1.0*n/m

n+=m

m+=2

}

printf("%.2lf\n",sum)

return 0

}

/*

运行结果:

96.80

*/

C语言程序:

#include <stdio.h>

#define N 10

void main()

{

int f1 = 1, f2 = 2

int i

double sum = 0

for(i=1 i<=N i++)

{

sum += 1.0 * f2 / f1

f2 += f1

f1 = f2 - f1

}

printf("2/1 + 3/2 + 5/3 + 8/5 + ... = %lf\n", sum)

}

运行结果:

2/1 + 3/2 + 5/3 + 8/5 + ... = 16.479905

//分数序列如:2\1,3\2.5\3,8\5.13\8,21\13.......的前20项之和

#include

//直接看这一组数列有什么规律,很容易发现,从2/1开始,后一组的分母为前一组的一个分子

//后一项的分子为前一项的分母分子之和,如果用an表示分母,bn表示分子,则有递推工式,b(n+1)=an::a(n+1)=an+bn知道这个就很好办了

float

getme(int

n)//这个函数就是求第n项的那个数的值

{

float

an=2.0float

bn=1.0

float

temp

while(--n)

{

temp=bn

bn=an

an=an+temp

}

return(an/bn)}

void

main()

{

int

n

float

thesum=0.0

printf("请输入你想要求的前n项的和:")

scanf("%d",&n)

for(n>0n--)

{

thesum=thesum+getme(n)

}

printf("%f",thesum)

}