实验4-1-6 求分数序列前N项和
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子.结果保留两位小数。
#include<stdio.h>
int main()
{
int n,i;
double a,b,x=1,y=2,sum=0;
scanf("%d",&n);
if(n==1){printf("0.50");}
else{a=x;
b=y;
for(i=1;i<n;i++){
b=a+b;
a=b-a;
sum+=1.0*b/a;
}
sum=sum+1.0/2;
printf("%.2f",sum);}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
你写反啦。
计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。
if(n==1){printf("0.50");}
#include<stdio.h>
int main()
{
int n,i;
double a=1.0,b=2.0,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++){
sum+=b/a;
//你可以输出下每一项的结果
printf("%.1f/%.1f = %.3f\n",b,a,b/a);
b=a+b;
a=b-a;
}
printf("%.2f",sum);
return 0;
}
你这代码有点问题,我发个代码给你看看。直接运行就可以了。
#include "stdio.h"
void main()
{
/*
数列前20项的和
2/1,3/2,5/3,8/5,13/8,21/13....
a=1,b=2;
a1=2,b1=3;
a=a+a1=3;
b=b+b1=5;
--------------------------
a1=2,b1=3;
a =3,b =5;
---------
a跟a1交换
b跟b1交换
a=2,b=3;
a1=3,b1=5;
*/
int i;
double a,a1,b,b1,a2,b2,sum=0;
//b/a,b1/a1
a=1,b=2; //第一项:2/1 a=1,b=2;
a1=2;b1=3; //第二项:3/2 a=2,b=3;
//第三项:5/3 a1=3,b1=5;
//第四项:8/5 a =5, b=8
sum = b/a+b1/a1;//前2项的值
//从第3项开始计算
for(i=2;i<20;i++)
{
a=a+a1; //3
b=b+b1; //5
sum+= b/a;
printf("%0.0lf/%0.0lf+",b,a);
a2=a; //a2是临时变量
a=a1;
a1=a2;
b2=b; //b2是临时变量
b=b1;
b1=b2;
}
printf("=%0.2lf",sum);
}
请采纳,谢谢!