有规律的数列求和

题目描述

有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。

输入

N

输出

数列前N项和

样例输入

10

样例输出

16.48

解析

  • 首先找这一序列的规律,仔细观察,你会发现第一个分数与第二个分数有一些联系,第一项的分母等于第二项的分子,并且第一项的分母与分子的和等于第二项的分母;其他也是有这样的规律。
  • 注意:结果是浮点数要保留两位小数,浮点数限制小数主要是通过iomanip库的fixed函数和setprecision函数。
注意:两个数相除要得到浮点数,需要两个浮点数来计算得到;

参考代码

#include<iostream>
#include<iomanip>
using namespace std ;
int main()
{
    int a,b,n,m;
    a=2;
    b=1;
    float s,c;
    s=0; 
    cin>>n;
    for(int i=0;i<n;i++)
    {
        c=float(a)/float(b);//使a,b有整数变成浮点数,也可以一开始就用float定义,但是赋值是要加上小数部份。
        m=b;
        b=a;
        a=m+b;
        s=s+c;
    }
    cout<<fixed<<setprecision(2)<<s<<endl;
    return 0 ;
}

运行结果

  • 若有问题,请评论出来!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。