编写一函数,求数列:1,2,3⼀2,5⼀3,8⼀5,...前n项之和,n由主函数中给定。

2024-12-04 04:19:05
推荐回答(3个)
回答1:

#include
int main()
{
int i=1,j=1,n;
float sum=0;
scanf("%d",&n);
for(int k=0;k{
sum+=(float)i/(float)j;
i=i+j; //i作为分子为上次分子i与分母j的和
j=i-j; //j作为分母为上次的分子i,但已经对i:i=i+j,所以此时 i-j 就是计算上次的分子i
}
printf("%f",sum);
return 0;
}

回答2:

观察这个数列,发现它的分子上是1,2,3,5,8,……,分母上是1,1,2,3,5,……看出来没?分母上是一个Fibonacci数列,分子上是一个Fibonacci数列从第二项开始。那你就可以写这样一个函数来解决这个问题:
double calc(n)
{
for(sum=0,i=1;i<=n;i++)
{
sum+=Fibonacci(i+1)/Fibonacci(i);
}
return sum;
}
Fibonacci(n)这个函数是用来求Fibonacci数列第n项的函数,你可以上网查一下,到处都有的。

回答3:

分子为2,3,5,8,13.......A1=2,A2=3,A(n+2)=An+A(n+1)
分母为1,2,3,5,8,.......B1=1,B2=2,B(n+2)=Bn+B(n+1)
分式为C1=2/1,C2=3/2,C(n+2)=A(n+2)/B(n+1)
这个数列的各项的分子,分母都是斐波那契数列,简介如下:
1 1 2 3 5 8 13 21 34
以上是著名的裴波那契数列。其特点为 某一项 = 它的前2项之和。
其通项公式为
Fn = {[(1+√5)/2]^n-[(1-√5)/2]^n}/√5