我们知道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] + " ");
}
}