斐波纳契数列(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;
}
}