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

数列

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

【题目描述】

有一个分数序列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;
}


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

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

    分享给朋友:
    返回列表

    上一篇:质数环

    下一篇:猴子吃桃

    相关文章

    【题解】车辆管理

    【题目描述】交通管理局长氓氓现在需要一个管理汽车的系统,每一辆汽车都有许多信息需要去记录。 首先,每一辆汽车都有一个独一无二的车牌号 S,车牌号由 7 个字符组成。 然后,对于每一辆车要记录它的排...

    整理药名

    【题目描述】医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。如将ASPIRIN、...

    【题解】最大数问题

    【题目描述】输入若干个整数。输出其中的最大数【输入描述】若干个整数。【输出描述】其中的最大数。【样例输入】1 2 5 7 8 6 1&nbs...

    【题解】黑色联通块

    【题解】黑色联通块

    【题目描述】输入一个n×n的黑白图像(1表示黑色,0表示白色),任务是统计其中黑色连通块的个数。如果两个黑格子有公共边或者公共顶点,就说它们属于同一个联通块。如下图所示的图形有3个联通块。【输入描述】...

    【题解】切比雪夫距离

    【题目描述】小C有一个平面!它发现了平面上的两个点,请你求出求它们之间的切比雪夫距离。切比雪夫距离定义为x与y方向坐标差的绝对值较大值。【输入描述】四个整数,a,b,c,d。坐标为(a,b)与(c,d...

    【题解】Best Cow Fences

    【题目描述】    给定一个长度为n的正整数序列A。求一个平均数最大的,长度不小于L的子序列。【输入描述】第一行,n和L;n个正整数,表示A。【输出描述】&nb...