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

数列

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

【题目描述】

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


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

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

    分享给朋友:
    返回列表

    上一篇:质数环

    下一篇:猴子吃桃

    相关文章

    【题解】给定和为定数

    【题目描述】给出若干个整数,询问其中是否有一对数的和等于给定的数。【输入描述】第一行是整数n(0 < n ≤ 100,000),表示有n个整数。第二行是n个整数。整数的范围是在0到108之间。第...

    【题解】柠檬水找零

    【题目描述】在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你...

    公路(road)

    公路(road)

    【题目描述】小苞准备开着车沿着公路自驾。公路上一共有n个站点,编号为从1 到n。其中站点i与站点i+1 的距离为vi公里。公路上每个站点都可以加油,编号为i 的站点一升油的价格为a...

    【题解】取余运算

    【题目描述】输入b,p,k的值,求bp mod k的值。其中b,p,k×k为长整型数。【输入描述】输入b,p,k的值。【输出描述】求 b^p mod k的值。【样例输入】2 10 ...

    【题解】放苹果(1)

    【题目描述】把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0≤t≤20)。以下...

    【题解】骨牌铺方格

    【题解】骨牌铺方格

    【题目描述】有1×n(n<=50)的一个长方形,用一个1×1、1×2和1×3的骨牌铺满方格,请问有多少种铺法?例如当n=3时为1×3的方格。此时用1×1、1×2和1×3的骨牌铺满方格,共有四种铺...