go语言 使用递归与循环两种方式计算斐波那契数列

给定一个正整数n计算出对应斐波那契数列对应的值

说明:

用mackbookpro i7 2.7GHZ笔记本进行测试go语言斐波那契数列递归,结果如下:

备注: 当n=80时go语言斐波那契数列递归,由于测试等待时间过长,强制中断了执行。

从测试结果看出,当n逐渐增大,递归方式计算斐波拉契数列的时间复杂性急剧增加。当n值较大时可以考虑用循环方式代替。

类似的方式也可以用于,求阶乘、遍历目录、汉诺塔等问题的解决。在后期的文章中,go语言斐波那契数列递归我将这些内容进行补充,敬请期待,谢谢。

用递归法计算斐波那契数列的第n项

用递归方法计算斐波那契数列的第n项的代码如下:

#include stdio.h

int Fibonacci(int n)

{

if( n == 1 || n == 2) // 递归结束的条件,求前两项

return 1;

else

return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。

}

int main()

{

int n;

printf("please input n: ");

scanf("%d",n);

printf("Result: %d\n",Fibonacci(n));

return 0;

}

扩展资料一【非递归方式计算斐波那契数列第N项】

#includeiostream

using namespace std;

int Fib(int n)

{

if(n==1 || n==2)

return 1;

int fib1=1;

int fib2=1;

int fib;

for(int i=3; i=n; ++i)

{

fib = fib1 + fib2;

fib2 = fib1;

fib1 = fib;

}

return fib;

}

void main()

{

int n;

cout"input n:";

cinn;

coutFib(n)endl;

}

扩展资料二【斐波那契数列的起源】

由于斐波纳挈数列是以兔子的繁殖引入的数学问题,因此也叫“兔子数列”,指的是这样一个数列:0,1,1,2,3,5,8,13...... 从这组数可以很明显看出这样一个规律:从第三个数开始,后边一个数一定是在其之前两个数的和。

在数学上,斐波纳挈数列可以以这样的公式表示:F(0) = 0,F(1) = 1 ,F(n) = F(n-1) + F(n-2),(n=2)

斐波那契数列递归算法是什么?

斐波那契数列递归算法是斐波那契数列的一种算法,又称为黄金分割数列,其算法规律为F(n)=F(n-1)+F(n-2)。

由于是以兔子的繁殖为例子引入的,因此也叫“兔子数列”。它指的是这样一个数列:0、1、1、2、3、5、8、13……,从这组数可以很明显看出这样一个规律:从第三个数开始,后边一个数一定是在其之前两个数的和。

扩展资料:

斐波那契数列递归的原理:

1、每一级的函数调用都有自己的变量。

2、每一级函数调用都会有一次返回。

3、递归函数中,位于递归调用前的语句和各级调用函数具有相同的执行顺序。

4、递归函数中,位于递归调用后的语句和各级调用函数具有相反的执行顺序。

5、虽然每一级递归都有自己的变量,但是函数代码并不会得到复制。

用递归函数求斐波那契数列的第n项的值

#include stdio.h

int Fibonacci(int n)

{

if( n == 1 || n == 2) // 递归结束的条件,求前两项

return 1;

else

return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。

}

int main()

{

int n;

printf("please input n: ");

scanf("%d",n);

printf("Result: %d\n",Fibonacci(n));

return 0;

}

在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。

扩展资料:

一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618(或者说后一项与前一项的比值小数部分越来越逼近0.618)。

从第二项开始,每个偶数项的平方都比前后两项之积少1,每个奇数项的平方都比前后两项之积多1。

如:第二项1的平方比它的前一项1和它的后一项2的积2少1,第三项2的平方比它的前一项1和它的后一项3的积3多1。

注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如从数列第二项1开始数,第4项5是奇数,但它是偶数项,如果认为5是奇数项,那就误解题意,怎么都说不通。

go语言斐波那契数列递归的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于golang斐波那契数列、go语言斐波那契数列递归的信息别忘了在本站进行查找喔。