當前位置:首頁 » 編程語言 » c語言分數序列前20項之和
擴展閱讀
怎麼清除預覽圖片的緩存 2022-11-30 14:15:11
c語言創建有序鏈表 2022-11-30 14:08:06

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

發布時間: 2022-09-25 09:38:15

① 用c語言求解:有一分數序列2/1,3/2,5/3,8/5,13/8,21/13,…求這個數列的前20項之和。

分子分母都是斐波那契數列
#include <stdio.h>

int fabonaci2_3(int n)
{
if(n=1)
return 2;
else if(n=2)
return 3;
else if(n>=3)
return fabonaci(n-1)+fabonaci(n-2);
else
{
printf("Input Error!\n");
return 1;
}
}

int fabonaci1_2(int n)
{
if(n=1)
return 1;
else if(n=2)
return 2;
else if(n>=3)
return fabonaci(n-1)+fabonaci(n-2);
else
{
printf("Input Error!\n");
return 1;
}
}

int main()
{
int i;
double s=0.0;
for(i=1;i<=20;i++)
s+=(double)fabonaci2_3(i)/(double)fabonaci1_2(i);
printf("2/1+3/2+5/3+8/5+13/8+21/13+...(20 items) = %f\n", s);
return 0;
}

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

public class 第二十題求數列之和 {

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;//臨時變數

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

sum += a/b;

temp = a;

a += b;

b = temp;

}

return sum;

}

}

(2)c語言分數序列前20項之和擴展閱讀:

for循環度是編程語言中一種循環語句,而循環語句由循環體及循環的判定條件兩部分組成,其表達式為問:for(單次表達式;條件表達式;末尾循環體){中間循環體;}

執行過程為:

求解表達式1;

求解表達式2。若其值為真,則執行 for 語句中指定的內嵌語句,然後執行第3步;若表達式2值為假,則結束循環,轉到第答5步;

求解表達式3;

轉回上面第2步繼續執行;

循環結束,執行 for 語句下面的語句。

執行過程中,「表達式1」只執行一次,循環是在「表達式2」「表達式3」和「內嵌語句」之間進行的。

③ 用c語言怎麼寫這個程序,分數序列2/1,3/2,5/3,8/5…,求出這個數列的前20項之和

此數列從第二項起,後一項的分子是前一項分子分母之和,分母是前一項分子。利用這一規律自定義一個遞歸函數求和。求和時將分子強制為double型以獲得浮點商。代碼如下:

#include"stdio.h"
doublemyfun(intm,intd,intn){//自定義前n項求和函數
if(n>1)//若n>1則遞歸調用
return(double)m/d+myfun(m+d,m,n-1);
return(double)m/d;//n==20時返回第20項m/d的浮點值
}
intmain(intargc,char*argv[]){
printf("%f ",myfun(2,1,20));//用第一項分子分母為2/1調用
return0;
}

運行結果如下圖:

④ 用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);
}

⑤ 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代碼如下:

⑥ C語言編程:有一分數序列:1/2,3/4,7/6,13/8,21/10...求出這個數列的前20項之和

思路:首先觀察分子的規則是前一個分數的分子與分母的和,分母的規則是2468……偶數。

參考代碼:

#include"stdio.h"
intmain()
{
intn=1,m=2,i;
doublesum=0;
for(i=0;i<20;i++){
sum+=1.0*n/m;
n+=m;
m+=2;
}
printf("%.2lf ",sum);
return0;
}
/*
運行結果:
96.80
*/

⑦ 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();
}

⑧ C語言求1+1+2+3+5+8+....前20項的和求編程

#include"iostream.h"

void main()

{int f1,f2,f=0,i;

f1=1;

f2=1;

for(i=3;i<=50;i++)

{f=f1+f2;f1=f2;f2=f;

cout<<f<<endl;}

}

⑨ 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);

}

}

(9)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);

}

}

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

#include<stdio.h>
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();
}