百度百科:
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、55……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)。
解题思路:
因为第一个数和第二个数固定都是1,所以可以直接声明变量并赋值。而斐波那契额数列的规律是后面一个数是前面两个数的和。也就是说 F(3) = F(1) + F(2)
= 1 + 1
=2
如上可以得出上面的递推公式:F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
答
方法一:
int num1 = 1;//第一个数
int num2 = 1;//第二个数
System.out.print(num1 + " " + num2 + " ");//输出第一个数和第二个数
for(int i = 0;i < 8;i++) {
int nextNum = num1 + num2; //下一个数
System.out.print(nextNum + " ");
num1 = num2; //把第二个数赋值给第一个数
num2 = nextNum; //把下一个数赋值给第二个数
}
方法二:采用递归算法解决该问题。
首先我们先了解一下什么是递归。递归( recursion)就是:程序调用自身的编程技巧(也可以说:用己之矛,攻己之盾)。
private static int function(int num) { //声明一个方法
if(num == 1 || num == 2) { // 对第一个或第二个数赋值 1
return 1;
}
return function(num - 1) + function(num -2); // 反馈自身的方法
}
public static void main(String[] args) {
for(int i = 1;i <= 10;i++) {
System.out.println(function(i));
}
}