欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》
问题:1147. 求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和
类型:函数
题目描述:
求1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/34…的前 n 项的和。
输入:
输入一个整数 n(1≤n≤30)。
输出:
输出一个小数,即前 n 项之和(保留 3 位小数)。
样例:
输入:
20
输出:
12.660
完整代码如下:
#include<bits/stdc++.h>
using namespace std;int fblq(int f){int r;if(f==1||f==2){r=1;}else{r=fblq(f-1)+fblq(f-2);}return r;
}int main(){//一、分析问题//未知:求1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/34…的前 n 项的和。//二、定义变量(已知、未知、关系) int n; double res=0;//三、输入已知cin>>n;//四、根据关系计算for(int i=1;i<=n;++i){res+=fblq(i)*1.0/fblq(i+1);}//五、输出未知 cout<<fixed<<setprecision(3)<<res;return 0;
}