编码实现求 fibonacci 数列的第 n 项。已知 f1 = 1, f2 = 1。

首先要明白,什么是 fibonacci 数列?

 fibonacci 数列,即斐波那契数列又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。

简单来说,这个数列从第3项开始,每一项都等于前两项之和。

实现代码如下:

方法一、

public static void main(String[] args) {
	System.out.println("您想求fibonacci 数列的第几项?");
	// 读取控制台输入的数字n
	Scanner sc = new Scanner(System.in);
	int n = sc.nextInt();
	// 创建一个int型数组f[],数组长度为n
	int f[] = new int[n];
	// 数组f[]的前两个元素赋初始值为1
	f[0] = 1;
	f[1] = 1;
	// 声明变量i作为数组f[]中元素的下标(index),使用for循环计算出长度为n数组f[]中所有的元素
	for (int i = 2; i < n; i++) {
		f[i] = f[i - 1] + f[i - 2];
	}
	//输出数组f[]的第n个元素
	System.out.println("fibonacci 数列的第" + n + "项是:" + f[n - 1]);
    }

方法二、

public static void main(String[] args) {
        System.out.println("您想求fibonacci 数列的第几项?");
	// 读取控制台输入的数字n
	Scanner sc = new Scanner(System.in);
	int n = sc.nextInt();	
	//调用方法f(n)输出
	System.out.println("fibonacci 数列的第" + n + "项是:" + f(n));
    }
public static int f(int i){
        if( i > 0 && i <= 2 ){
            return 1;
        }else{
            return f( i - 2 ) + f( i - 1 );
        }
    }


你可能感兴趣的:(java编程练习题)