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

数列

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

【题目描述】

有一个分数序列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个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有...

【题解】母牛的故事

【题解】母牛的故事

【题目描述】有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?【输入描述】输入数据由多个测试实例组成,每个测试实例占一行...

剪刀石头布

【题目描述】石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼...

【题解】队列问题

【题解】队列问题

4.队列问题(lru.cpp)【题目描述】有一个大小为n的页面缓存队列,初始为空,当计算机访问页面时,若缓存队列没有该页面,则加入到缓存队列中,若队列已满,则将删除访问时间最远的页面。有Q次询问,每次...

【题解】车厢调度

【题解】车厢调度

【题目描述】有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n<=1000)。分别按照顺序编号为1,2,3,...n。假定在...

猴子吃桃

【题目描述】猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时...