題目描述
有一分數序列: 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 ;
}
運行結果
- 若有問題,請評論出來!