0
点赞
收藏
分享

微信扫一扫

递归——Fibonacci数列

zmhc 2022-05-16 阅读 39

递归——Fibonacci数列_递归

斐波纳契数列(Fibonacci Sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。


递归算法

求Fibonacci数列前40个数。

public class Text1 {

public static void main(String[] args){

System.out.println("求Fibonacci数列的第40个数是多少");

System.out.println(f(6));

}

public static int f(int a)

{

if(a==1||a==2)

{

return 1;

}else

{

return f(a-2)+f(a-1);

}

}

}

非递归算法

public class Text11 {

public static void main(String[] args) {

System.out.println("求Fibonacci数列的第四十个数");

System.out.println(F(5));

}

public static int F(int a) {

int x = 1, y = 1;

if (a == x || a == y) {

return 1;

}

for (int i = 3; i <= a; i++) {

int temp = y;

y = x + y;

x = temp;

}

return y;

}

}

*举一反三

如果按34 21 13 8 5 3 2 1 1排列

public class Text11 {

public static void main(String[] args) {

System.out.println("如果按 34 21 13 8 5 3 2 1 1排列,求第6个数");

System.out.println(F(6));

}

public static int F(int a) {

int x = 34, y = 21;

if (a == 1 ) {

return 34;

}

if (a == 2 ) {

return 21;

}

for (int i = 3; i <= a; i++) {

int temp = y;

y = x - y;

x = temp;

}

return y;

}

}


举报

相关推荐

0 条评论