当前位置:首页 » 编程语言 » c语言分数序列前20项之和
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

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