有規律的數列求和

題目描述

有一分數序列: 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 ;
}

運行結果

  • 若有問題,請評論出來!
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。