1. 程式人生 > >使用Java列印斐波那契數列的三種方法

使用Java列印斐波那契數列的三種方法

       斐波那契數列(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列印數列方法

       斐波那契數列(Fibonacci sequence)的定義:斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,

java實現數列方法

Java實現斐波那契數列的三種方法 什麼是斐波那契數列 這裡借用一下度孃的一段話:斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是

Java數列寫法

說明:1,1,2,3,5,8,13,21,34,55,89......這樣是數列稱為斐波那契數列 1、利用遞迴思想處理 public static long method(int num){         if(num <=

Java列印數列

一個斐波那契數列是由數字1、1、2、3、5、8、13、21、34等等組成的,其中每一個數字(從第三個數字起)都是前兩個數字的和。建立一個方法,接受一個整數引數,並顯示從第一個元素開始總共由該引數指定的個數所構成的所有斐波那契數字。例如,如果執行 java Fibonacci

列印數列的前十個數中所有的質數,並統計個數。

#include<stdio.h> #include<math.h> int main(){long int f1=1,f2=1,i,k,n;long int a[30];int m=0;a[0]=1;a[1]=1;for(i=2;i<=29;

Java實現數列(遞迴、遍歷、矩陣)

什麼是斐波那契數列 其實很簡單,可以理解為: F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 比如這樣一個數列:1、1、2、3、5、8、13、21、34、…… 有興趣可以看百度百科 下面我們就來實現,給定一個n,求f(n)的值

Java列印數列

//裴波那契數列的定義:他的第一項和第二項均為1,以後各項都為前兩項的和。如: 1,1,2,3,5,8,13,21,34,55,89,144,233,~~~~ 關鍵程式碼如下: package fuxi;import java.util.Scanner;public class Pbo { &

java 優化數列

一、動態規劃、分治、遞迴的概念      動態規劃:如果大問題分解為很多小問題後,小問題有互相重疊部分,則用遞迴的思路來分析問題,再使用儲存中間結果+迴圈的思路來寫程式碼!動態規劃的三個特徵:適用於最優解問題、有大量的重複子問題、子問題之間有依賴(不獨立)      與遞

Java實現數列

public class Java02{ public static void main(String[] args){ int num = Integer.parseInt(args[0]); ///將string型別轉換為int型別

php列印數列

<?php //5、列印100以內的斐波那契數列 0 1 1 2 3 5 8 13 //$next=1; //第二個數 //echo $befor.' '; //echo $next.'

java數列 不死神兔

有一對兔子,從出生起後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子, 假如兔子都不死,問第二十個月的兔子對數為多少? 規律: 1,1,2,3,5,8,13... 規則:A.從第三個月開始,第一項是前兩項之和。 B.說明前兩項是已知的。 其實就是斐波那契數列,

python指令碼9_列印數列

#列印斐波那契數列 f0 = 0 f1 = 1 for n in range(2,101): fn = f1 + f0 if fn <= 100: print(fn) f0 = f1 f1 = fn  方法2:

python指令碼10_列印數列的第101項

#列印斐波那契數列的第101項 a = 1 b = 1 for count in range(99): a,b = b,a+b else: print(b)  方法2: #列印斐波那契數列的第101項 a = 1 b = 1 for i in range(

java實現數列,現在要求輸入一個整數n,請你輸出數列的第n項。 n

public class Solution_feibonaqi { public int Fibonacci(int n) { int result[] = { 0, 1 }; if (n < 2) { return result[n];

Java實現數列並輸出前10000個數值

斐波納契數列,又稱黃金分割數列,指的是這樣一個數列:0、1、2、3、5、8、13、21、……在數學上,斐波納契數列以如下被以遞迴的方法定義:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&

Java數列相關面試題

斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一

java數列

package com.wood.util; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class test1 { public sta

Java數列前N項(堆疊演算法)

堆疊是一種很靈活的"後進先出"資料結構,使用堆疊可以節省記憶體的開銷。比如,遞迴是一種很消耗記憶體的演算法,可以藉助堆疊消除大部分遞迴,達到和遞迴演算法同樣的目的。 下面用例子實現求斐波那契數列前N項

python 列印數列-使用遞迴函式版本

使用python打印出斐波那契數列的過程中需要特別注意的是數列中的值有前兩項相加而來,所以需要兩項同時賦值,不能分開賦值,分開賦值會導致數列變為等比數列 #!/usr/bin/python #-*- coding:UTF-8 -*- def fib(n):

如何用Java編寫數列

無窮數列1,1,2,3,5,8,13,21,34,55,……,稱為Fibonacci數列。它可以遞迴地定義為:   F(n)=1                                    n=0   F(n)=1