我们知道Fibonacci的定义如下:
结果为:fibonacci: 0 1 1 2 3 5 8 13 21 34 55 89 ....
而编程实现该数列有两种方式:一种是递归实现;一种是非递归实现。而这类问题典型的实现是递归实现。如下所示:
1.递归实现
2.非递归实现:
方式一:
public static int fibona(int i) { int a = 0;//第i-2个数 int b = 1;//第i-1个数 int c = 0;//第i个数 for(int j=0;j<i;j++){ c = a+b; //前两数之和 a = b; //将i-1赋给i-2; b = c; //将i赋给i-1; } return c; }
方式二:(使用数组实现)
public static void main(String[] args) { int arr[] = new int[10]; arr[0] = 0; arr[1] = 1; for (int i = 2; i < arr.length; i++) { arr[i] = arr[i - 1] + arr[i - 2]; } System.out.println("斐波那契数列的前10项如下所示:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } }