當前位置:首頁 » 編程語言 » c語言求分數數列前20項之和
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求分數數列前20項之和

發布時間: 2023-01-11 16:35:57

1. c語言編程:有一分數序列:2/1,3/2,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 = / 9251704366605890848773498384

近似值為:32.

具體計算結果和fortran代碼如下:

2. 用C語言編寫:有一個分數序列2/1,3/2,5/3,8/5,13/8,......求出這個數列前20項之和

#include <stdio.h>

double sum(int n)
{
int i;
double part = 0;

for( i = 1.0; i <= n; i++ )
part += (1.0 / i);
return 2 * n - part;
}

int
main(void)
{
printf( "%.18f\n", sum(20) );
return 0;
}

樓主,小數點後的精度你可以根據需要自己調,我選的是18位。

3. c語言編程 有一分數系列 2/1,3/2,5/3,8/5,13/8,21/13,... 求出這個數列前20 項之和

你應該知道Fibonacci數列吧。就是第一個數和第二個數都是1,以後的數都是前面兩個數的和,(1,1,2,3,5,8,13。。。。。。)。加點分吧,我幫你做

4. 用C語言編寫程序編寫分數序列的前20項之和

//分數序列如:2\1,3\2.5\3,8\5.13\8,21\13.......的前20項之和。 x0dx0a#include//直接看這一組數列有什麼規律,很容易發現,從2/1開始,後一組的分母為前一組的一個分子x0dx0a//後一項的分子為前一項的分母分子之和,如果用An表示分母,Bn表示分子,則有遞推工式,B(n+1)=An::A(n+1)=An+Bn知道這個就很好辦了x0dx0afloat getMe(int n)//這個函數就是求第n項的那個數的值x0dx0a{x0dx0a float An=2.0;float Bn=1.0;x0dx0a float temp;x0dx0a while(--n)x0dx0a {x0dx0a temp=Bn;x0dx0a Bn=An;x0dx0a An=An+temp;x0dx0a }x0dx0a return(An/Bn);}x0dx0avoid main()x0dx0a{x0dx0a int n;x0dx0a float theSum=0.0;x0dx0a printf("請輸入你想要求的前n項的和:");x0dx0a scanf("%d",&n);x0dx0a for(;n>0;n--)x0dx0a {x0dx0a theSum=theSum+getMe(n);x0dx0a }x0dx0a printf("%f",theSum);x0dx0a}

5. 用C語言編寫程序編寫分數序列的前20項之和

//分數序列如:2\1,3\2.5\3,8\5.13\8,21\13.......的前20項之和。
#include<stdio.h>//直接看這一組數列有什麼規律,很容易發現,從2/1開始,後一組的分母為前一組的一個分子
//後一項的分子為前一項的分母分子之和,如果用An表示分母,Bn表示分子,則有遞推工式,B(n+1)=An::A(n+1)=An+Bn知道這個就很好辦了
float getMe(int n)//這個函數就是求第n項的那個數的值
{
float An=2.0;float 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>0;n--)
{
theSum=theSum+getMe(n);
}
printf("%f",theSum);
}

6. 用C語言的注釋語句注釋這個問題"有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和."

#include<stdio.h>
#include<stdlib.h>
void main(){
int n=20;
int a[20];
int b[20];
a[0]=2;
a[1]=3;
b[0]=1;
b[1]=2;
int i=0;
for(i=2;i<n;i++)
a[i]=a[i-1]+a[i-2];
for(i=2;i<n;i++)
b[i]=a[i-1]+b[i-2];
double sum=0;
for(i=0;i<n;i++)
sum=sum+a[i]/(b[i]+0.0);
printf("%f\n",sum);
system("pause");

}

7. c語言問題,編一個成,求以下數列前20項之和

#include<stdio.h>

int main()

{

int i,j=2,k=1,t;

double s=0.0;

for(i=1;i<=20;i++)

{

s+=(double)j/k;

t=j;

j=j+k;

k=t;

}

printf("sum=%.6f ",s);

getch();

return 0;

}

8. C語言編程:有一分數序列:2/1,3/2,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會將小數點後都舍棄。

}

System.out.println(sum);

}

}

//用數組方法來實現

public class Demo2 {

public static void main(String[] args) {

double numerator[]=new double[20]; //創建分子長度為20的浮點型數組

double denominator[]=new double[20]; //創建分母長度為20的浮點型數組

numerator[0]=2;

denominator[0]=1;

double sum=numerator[0]/denominator[0];

for(int i=0;i<19;i++){

numerator[i+1]=numerator[i]+denominator[i];

denominator[i+1]=numerator[i];

sum+=(double)numerator[i+1]/denominator[i+1];

}

System.out.println(sum);

}

}

(8)c語言求分數數列前20項之和擴展閱讀

Java數列求和:有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。

public class QiuHe {

public static void main(String[] args){

float total=0;

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

float top= getTop(i+1);

float bottom=getBottom(i+1);

total+=top/bottom;//每一項的值

}

System.out.println(total);

}

//獲取分子核心遞歸方法

public static float getTop(int position){

if(position==1){

return (float)2;

}

if(position==2){

return (float) 3;

}

return getTop(position-1)+getTop(position-2);

}

//獲取分母核心遞歸方法

public static float getBottom(int position){

if(position==1){

return (float) 1;

}

if(position==2){

return (float)2;

}

return getBottom(position-1)+getBottom(position-2);

}

}

9. C語言計算一個分數序列的前20項之和

#include
void
main()
{
int
n;
double
s,
t;
s
=
0;
for
(n
=
1;
n
<=
20;
n++)
{
t
=
1.0
/
(2
*
n);//1為整型,如果結果為浮點型,那麼要用1.0,
s
=
s
+
t;
}
printf("前20項之和為:%f",
s);//%d改為%f
getchar();
}