问题描述
求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 fun1(int n){
if(n==1||n==2) return 1;
else return fun1(n-1)+fun1(n-2);
}
int fun2(int n){
if(n==1) return 1;
if(n==2) return 2;
return fun2(n-1)+fun2(n-2);
}
int main(){
int x;
double sum=0;
cin>>x;
for (int i=1;i<=x;i++){
sum=sum+(fun1(i)*1.0)/(fun2(i)*1.0);
}
cout<<fixed<<setprecision(3)<<sum<<endl;
return 0;
}
//求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和
该文章介绍了如何使用C++编程语言实现一个函数,计算斐波那契数列中特定部分(1/1+1/2+2/3+...)的前n项和,利用递归和动态规划的方法,输出结果保留3位小数。



1168

被折叠的 条评论
为什么被折叠?



