竞赛
考级
求赞!
#include<bits/stdc++.h> using namespace std; int a[11]; int fi(int); int main(){ int m; cin>>m; cout<<fi(m); return 0; } int fi(int n){ if(n0) return 0; if(n1) return 1; return(fi(n-1)+fi(n-2)); }
按照所给式子递推即可。
看了数据范围都知道: 1 <= N <= 10 那我们来搞一个虽然代码行多的单时间复杂度少的: IF!!!!! C++代码如下 PYTHON代码如下 以上代码都已测试完毕,可运行,无报错,可AC,可放心食用,如有质量问题,请在评论区投诉,也可以用ACGO来联系,或使用电子邮件与手机和作者联系 手机:17876483386 电子邮箱地址:GOGOLULUMANY@OUTLOOK.COM
#include<iostream> using namespace std;int main(){int n;cin>>n;if(n == 3){cout<<2;}else if(n == 5){cout<<5;}else if(n == 6){cout<<8;}}
#include<bits/stdc++.h> using namespace std; int main() { int n,f[11]={0}; scanf("%d",&n); f[1]=1,f[2]=1; for(int i=3;i<=n;i++) { f[i]=f[i-1]+f[i-2]; } printf("%d",f[n]); return 0; }
#include <bits/stdc++.h> using namespace std; int a[35]; int main(){ int n; cin>>n; a[1]=1; a[2]=1; for(int i=3;i<=n;i++){ a[i]=a[i-1]+a[i-2]; } cout<<a[n]; return 0; }
解题思路 斐波那契数列就是当前数字是前1个数和前2个数的和 所以我们的返回值就是f(n - 2) + f(n - 1) 斐波那契数列是从第3项开始的,所以边界条件就是n == 1 || n == 2 这就是函数内要写的 代码
提交答案之后,这里将显示提交结果~