- 分子分母 均是斐波那契數列先給前兩項賦值,逐步向後累加
(需要判斷==1的情況) - 分數求和:分子分母單獨求,得到的每一對算出一項,不斷累加
傳送門
Description
有一分數序列: 2/1 3/2 5/3 8/5 13/8 21/13…… 求出這個數列的前N項之和,保留兩位小數。
Input
N
Output
數列前N項和
Sample Input
10
Sample Output
16.48
AC代碼
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
float sum11=2.0f,sum21=1.0f,sum12=3.0f,sum22=2.0f,N;
//第一行(分子):1 2 3 5 8 13 21
//第二行(分母):2 3 5 8 13 21 34
//sum11是第一行數第一個值,sum12是第一行數第二個值
//sum21是第二行數第一個值,sum22是第二行數第二個值
float sum1=0.0f,sum2=0.0f;
float sum=3.5f;
cin>>N;
if(N==1)
sum=2.0f;
else if(N==2)
sum=3.5f;
else{
for(int i=2;i<N;i++){
sum1=sum11+sum12;
sum2=sum21+sum22;
sum+=(sum1/sum2);
sum11=sum12;
sum21=sum22;
sum12=sum1;
sum22=sum2; //這樣循環不斷向後推移
}
}
cout<<fixed<<setprecision(2)<<sum<<endl;
return 0;
}