当前位置:首页 > 题解目录 > 正文内容

数列

亿万年的星光5年前 (2021-01-28)题解目录2018

【题目描述】

有一个分数序列image.png求出这个序列的前n项和,结果保留两位小数。(注意,不用通分,单项相加即可)

【输入描述】

一个数字,N

【输出描述】

前N项的和

【样例输入】

10

【样例输出】

16.48

【题目分析】

(1)第一眼看上去像斐波那契数列数列,但是不完全是,数列之间有一定的规律
(2)每个分数的分子是上一个分式分子分母的和(规律1)
(3)递归和循环都能解决这个问题
(4)横向来看,斐波那契数列,可以对分子分母分别使用(规律2)


【参考代码1】

采用循环的方式解决

#include<cstdio>
int main()
{
   int N;
   int i;
   double t,num,sum=0;
   double a=1,b=2;
   scanf("%d",&N); //读入n
   for(i=1;i<=N;i++) //
   {
        num=b/a; //当前分式的结果
        sum=sum+num; //累加过程
        t=b;  
        b=a+b; //下一次分式的分子等于上一次的分子加分母的和
        a=t;  
   }
printf("%.2f\n",sum);
   return 0;
}

【参考代码2】

采用递推的方式解决,按照要求,先把整个数列构造出来,然后再单独相加。

#include<cstdio>
#include<iostream>
using namespace std;
double a[100],b[100]; //定义分子和分母的数组  
double sum; //定义和
int main()
{
   a[1]=2,a[2]=3; //定义分子的初值
   b[1]=1,b[2]=2; //定义分母的初值
   int n; //定义n的范围
   cin>>n;
   for(int i=3;i<=n;i++)
   {
       a[i]=a[i-1]+a[i-2];
       b[i]=b[i-1]+b[i-2]; //对分子分母分别使用递推式
   }
   for(int i=1;i<=n;i++)
       sum+=a[i]/b[i];
   printf("%.2f",sum);
   return 0;
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:
    返回列表

    上一篇:质数环

    下一篇:猴子吃桃

    相关文章

    【题解】01串

    【题目描述】Fans是个ACM程序设计迷。有时侯,他表现出很强烈的逆反心理,你往东,他往西,你往南,他偏往北。这一次,不知道又是谁惹着他了,好端端的一个个01串,到了他的手里,都变成10串了。请你编个...

    【题解】电缆线(2019青岛市程序设计竞赛)

    【问题描述】在郊区有N座通信基站,P条双向电缆,第 i 条电缆连接基站 A_i 和 B_i。特别地,1号基站是通信公司的总站,N号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i...

    数的拆分(1)

    【题目描述】任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。例如:当n=7时7=1+1+1+1+1+1+1 7=1+1+1+1+1+2 7=1+1+1+1+3 7=1+1+1+2...

    【题解】装满杯子需要的最短总时长

    【题目描述】现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。给你一个下标从&nb...

    简单算术表达式求值

    【题目描述】 两位正整数的简单算术运算(只考虑整数运算),算术运算为:+,加法运算;    -,减法运算;   &nbs...

    【题解】东哥的杯子

    【题解】东哥的杯子

    【题目描述】话说在一场牛客练习赛中,东哥力压群雄,挣得第一,牛客为了奖励东哥的发挥,送他一个马克杯。奖励的马克杯是一个标准的圆台形状,它的上底为R1,下底为R2,高为H, 东哥向杯子里倒V毫升的水,你...