中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java有幾種方法實現斐波那契數列

發布時間:2020-06-18 13:44:17 來源:億速云 閱讀:232 作者:鴿子 欄目:編程語言

斐波那契數列(Fibonacci sequence)的定義:斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........,這個數列從第3項開始,每一項都等于前兩項之和。

斐波那契數列又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”。在數學上,斐波納契數列以如下被以遞歸的方法定義:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。

現在,我們使用Java來打印斐波那契數列的前10個數字:

第一種方式:直接賦值法

public class PrintFib {
 
	public static void main(String[] args) {
		
		//定義第一個加數a,初始值為1;定義第二個加數b,初始值為1;定義兩個加數之和為c,初始值為0
		int a = 1;
		int b = 1;
		int c = 0;
		//首先在控制臺打印出數列中第一個數和第二個數的值
		System.out.print(a + "\t" + b + "\t");
		//建立一個for循環,用于循環輸出數列中第三位至第十位的數字
		for (int i = 3; i <= 10; i++) {
			//第三個數即為c,a+b等于c的值
			c = a + b;
			//將第一個加數a賦值為數列中的第二個數b的值
			a = b;
			//將第二個加數b賦值為數列中的第三個數c的值
			b = c;
			//在第二次循環打印時,將打印數列中的第四個數為:b + c = b + (a + b) 
			System.out.print(c + "\t");
		}
	}
}

該方法還可簡化為:

public class PrintFib {
	
	public static void main(String[] args) {
		
		int a = 1;
		int b = 1;	
		for(int i = 1;i <= 5;i++) {	
			//循環打印a,b兩個數,即兩個兩個打印
			System.out.print(a + "\t" + b + "\t");
			//打印第三、四個數
			a = a + b;
			b = a + b;		
		}
	}
}

第二種方式:建立并打印數組

public class PrintFib {
	
	public static void main(String[] args) {
		
		//建立一個長度為10的數組用于存放數列中的數
		int[] arr = new int[10];
		//先定義數列中的第一個和第二個數
		arr[0] = 1;
		arr[1] = 1;
		//建立一個for循環,打印數組中的元素
		for(int i = 0;i < arr.length;i++) {
			//判斷:當打印第三個數前,給第三個數賦值
			if(i > 1) {
				arr[i] = arr[i - 2] + arr[i - 1];
			}
			System.out.print(arr[i] + "\t");
		}
		
	}
}

第三種方式:調用函數

public class PrintFib {
	
	//建立一個函數,用于計算數列中的每一項
	public static int fib(int num) {
		//判斷:是否是第一個數和第二個數
		if(num == 1 || num == 2) {
			return 1;
		}else {
			//循環調用本函數
			return fib(num - 2) + fib(num - 1);
		}
	}
	
	//主函數(程序入口)
	public static void main(String[] args) {
		
		//建立一個for循環,用于打印第一個至第十個數字
		for(int i = 1;i <= 10;i++) {
			//調用函數進行打印
			System.out.print(fib(i) + "\t");
		}	
	}
	
}

以上就是java實現斐波那契數列的三種方法的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临邑县| 汤原县| 绍兴市| 郁南县| 仁布县| 德江县| 孙吴县| 阜新| 泰安市| 蓬莱市| 加查县| 德化县| 庆阳市| 东平县| 景谷| 绩溪县| 五指山市| 阳谷县| 东兰县| 深泽县| 瑞安市| 大新县| 沐川县| 易门县| 乌鲁木齐县| 滨海县| 响水县| 北安市| 克什克腾旗| 富锦市| 颍上县| 尚义县| 商洛市| 肇庆市| 洮南市| 高平市| 凭祥市| 三河市| 镇远县| 南京市| 南雄市|