活死题14:计算斐波那契数列并输出前十个数字。

百度百科:
斐波那契数列(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));
		}

	}

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章