- 分子分母 均是斐波那契数列先给前两项赋值,逐步向后累加
(需要判断==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;
}