编写一个程序,求分数序列1,2\1,3\2,5\3,8\5,……前20项之和

怎么写这道题?

分子和分母都是Fibonacci数列,即第三个数(包括第三个)以后的每一个数等于它前面的两个数之和,如1,1,2,3,5,8,…,易知分子是从Fibonacci数列的第二项开始,分母是从第一项开始,

float fun(int n) /*计算Fibonacci数列中的第n项的值*/
{
if(n >= 3)
return(fun(n - 1) + fun(n - 2));
if(n == 1 || n == 2)
return 1;
}

void main()
{
float sum = 0;
int i = 0, j = 0;
for(i = 1; i <= 20; i++)
{
sum += fun(i + 1) / fun(i);
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-04-06
#include<stdio.h>
#include<stdlib.h>

int main()
{
double res = 0;
int a[2];
int i = 0, tmp;

a[0] = 1; a[1] = 1;
for (; i < 20; ++i)
{
res += a[1] * 1.0 / a[0];
tmp = a[1];
a[1] += a[0];
a[0] = tmp;
}
printf("%f\n", res);
}
第2个回答  2008-04-06
#include <stdio.h>
void main()
{int a=1,b=1,i,t;float sum=1;
for(i=1;i<20;i++)
{t=a;a+=b;b=t;
sum+=(float)a/b;
}
printf("%f",sum);
}
第3个回答  2020-08-07
#include<iostream.h>
int
main()
{
double
up=3.0,down=2.0,predown=1.0,sum=3.0;
for(int
i=0,j;i<18;i++)
{
sum+=(up/down);
up+=down;
j=down;
down+=predown;
predown=j;
}
cout<<sum<<endl;
return
0;
}
第4个回答  2020-03-18
C语言用递归实现了一下
不知道是不是你想要的
#include
<stdio.h>
float
fz(int
n)
//计算分子
{
if
(n
==
1)
{
return
1;
}else
if
(
n
==
2)
{
return
2;
}else
{
return
fz(n-2)+fz(n-1);
}
}
float
fm(int
n)//计算分母
{
if
(n
==
1)
{
return
1;
}else
if
(
n
==
2)
{
return
1;
}else
{
return
fm(n-2)+fm(n-1);
}
}
void
main()
{
int
i;
float
s=0;
for
(i
=
1;
i
<=
20;i++)
{
s
+=
fz(i)/fm(i);
}
printf("SUM=%f\n",s);
}

编写一个程序,求分数序列1,2\\1,3\\2,5\\3,8\\5,……前20项之和
分子和分母都是Fibonacci数列,即第三个数(包括第三个)以后的每一个数等于它前面的两个数之和,如1,1,2,3,5,8,…,易知分子是从Fibonacci数列的第二项开始,分母是从第一项开始,float fun(int n) \/*计算Fibonacci数列中的第n项的值*\/ { if(n >= 3)return(fun(n - 1) + ...

编写一个java应用程序,求分数序列2\/1,3\/2,5\/3,8\/5,13\/8…的前20项之...
{ public static void main(String[] args){ int xiang=20;\/\/计算多少项 float sum=0;int[] num=new int[xiang+1];num[0]=1;num[1]=2;for(int j=2;j<=xiang;j++){ num[j]=num[j-1]+num[j-2];} for(int i=1;i<=xiang;i++){ sum+=(float)num[i]\/num[i-1];} S...

编写一个java应用程序,求分数序列1\/2,2\/3,3\/5,5\/8,8\/13,13\/21,…的前...
double n=2;double sum=0;for(int i=0;i<20;i++ ){ sum=sum+m\/n;double temp=m;m=n;n=m+temp;} return sum;} public static void main(String[] args){ TestA t=new TestA();System.out.println(t.sum());} }

...2\/1,3\/2,5\/3,8\/5,13\/8,21\/13...求出前20项之和
include <stdio.h> main(){ float i=1.0,j=2.0,sum=0.0,temp;int n;for(n=0;n<20;n++){ sum+=j\/i;temp=j; \/\/temp存储前一个分数的分子j j=i+j; \/\/j赋值为此次循环的分子与分母之和,它将作为下次的分子 i=temp; \/\/i赋值为此次循环的分子,它将作为下次的分母 } printf...

...5\/3,8\/5,13\/8,21\/13...求出这个数列的前20项之和。
1,2,3,5,8,13,21 ... 从第三项开始,F(n)=F(n-1)+F(n-2),符合斐波那契数列特征。本题的分数序列,以上述数列的第n项作为n项的分母,以n+1项作为n项的分子。不懂C语言。一般来说,分数计算的结果,应该以分数形式精确表达。写了一段fortran代码,计算这个数列前20项的和。sum =...

编辑程序:求序列2\/1+3\/2+5\/3+8\/5+···前20项之和?
以下是一个编辑好的程序,用于求解序列2\/1+3\/2+5\/3+8\/5+···前20项之和:程序使用了一个 for 循环,计算了前20项的和。其中,变量 a 和 b 分别表示分子和分母,c 表示下一项的分子,循环每次更新这些变量的值,并将上一项的分数加入到总和中。最终输出前20项之和。

...5\/3,8\/5,13\/8,21\/13...求出这个数列的前20项之和。
public static void main(String[] args) { System.out.println("数列的和为:" + getValue(20));} \/\/获取第i项的值 2\/1,3\/2,5\/3,8\/5,13\/8 public static double getValue(int n) { double a=2; \/\/分子 double b = 1;\/\/分母 double sum = 0; \/\/值 double temp = 0...

...\/2,5\/3,8\/5,13\/8,写出一个程序求改数列前20项之和
n++;a+b;t

...5\/3,8\/5,13\/8,21\/13...求出这个数列的前20项之和。
public class Demo11 { public static void main(String[] args) { double sum=2\/1;double m=2;\/\/定义分子 double n=1;\/\/定义分母 for(int i=2;i<=20;i++){ m=m+n;n=m-n;sum+=(double) m\/n; \/\/将分子的类型强制转换成double,否则两个int相除,结果还是int会将小数点后都...

...5\/3,8\/5,13\/8,21\/13……求出这个数列的前20项之和。
解:∵分数序列为2\/1,3\/2,5\/3,8\/5,13\/8,21\/13,……∴令F(n)为斐波那契数列,有分数序列的通项公式为:a[n]=F(n+2)\/F(n+1)∵F(n)=(1\/√5)*{[(1+√5)\/2]^n - [(1-√5)\/2]^n} ∴a[n]={[(1+√5)\/2]^(n+2) - [(1-√5)\/2]^(n+2)}\/{[(1+...

相似回答
大家正在搜