亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    java實現(xiàn)斐波那契數(shù)列的三種方法

    java實現(xiàn)斐波那契數(shù)列的三種方法

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

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

    免費在線視頻教程分享:java在線視頻

    現(xiàn)在,我們使用Java來打印斐波那契數(shù)列的前10個數(shù)字:

    第一種方式:直接賦值法

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

    第二種方式:建立并打印數(shù)組

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

    第三種方式:調用函數(shù)

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

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號