文章

3

粉丝

403

获赞

3

访问

36.0k

头像
斐波那契的递归和非递归算法
P1111 云南大学机试题
发布于2020年1月15日 12:58
阅读数 12.8k

斐波那契项数与值
n 0 1 2 3 4 5 6 7 8 9
fb[n] 1 1 2 4 7 13 24 44 81 149

 


 

我们首先观察,对于给出的n,其值与对应项并没有直接一一对应的映射关系,于是我们可以从fb[n]入手找关系,
可以看出从第n=3开始,有fb[n]=fb[n-1]+fb[n-2]+fb[n-3]
这样,我们就找到了递推的关系啦,那么接下来我们就自然而然想到了用递归方式来解决,话不多说,直接上代码

#include <bits/stdc++.h>

using namespace std;

 

long long int fb(int i){//找出递归式子,确定输入输出

switch(i){

case 0: case 1:

return 1;

break;

case 2:

return 2;

break;

default:

return fb(i-1)+fb(i-2)+fb(i-3);

break;

}

}

 

int main(){

int n;

while(scanf("%d",&n)!=EOF){

if(n==-1) break;

printf("%lld\n",fb(n));

}

 

return 0;

}

登录查看完整内容


登录后发布评论

1 条评论
Timtam
2021年2月21日 10:31

递归会超时的

赞(1)