ITPub博客

首页 > 应用开发 > > F(n)=F(n-1)+F(n-2),F(0)=1,F(1)=1求F

F(n)=F(n-1)+F(n-2),F(0)=1,F(1)=1求F

作者:yellowduck007 时间:2019-09-06 16:43:58 0 删除 编辑

 已知F(n)=F(n-1)+F(n-2),F(0)=1,F(1)=1.分别用递归和循环求F

当我们拿到这样一道面试题目的时候,都会觉得不是很难,但是一下子把代码写出来, 可能部分同学对递归还不熟悉,也有部分同学对如何通过简单的循环去实现有疑问,下面通过代码为有疑问的同学进行解答,有不对的,也希望大牛在评论中指出。

    其实递归说白了就是不断地调用自身,不断调用自身不能出现死循环,所以必须要有递归结束条件。

点击(此处)折叠或打开

#include <stdio.h>

//递归

int F_recursion(int n)

{

if(0 == n || 1 == n)//递归结束条件

{

return 1;

}

return F(n-1) + F(n-2);

}

//循环

int F_circulation(int n)

{

int f0 = 1;

int f1 = 1;

int i = 2;

int ret = 0;

for(;i <= n;i++)

{

ret = f0 + f1;

f0 = f1;

f1 = ret;

}

return ret;

}

int main(int argc, const char *argv[])

{

int n = 5;

printf("%d\n",F_recursion(5));

printf("%d\n",F_circulation(5));

return 0;

}

    程序输出结果为:8.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2611/viewspace-3162021/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    88
  • 访问量
    983