1. 程式人生 > >斐波那契數列-java程式設計:三種方法實現斐波那契數列

斐波那契數列-java程式設計:三種方法實現斐波那契數列

題目要求:編寫程式在控制檯輸出斐波那契數列前20項,每輸出5個數換行

//java程式設計:三種方法實現斐波那契數列
//其一方法:

public class Demo2 {
	// 定義三個變數方法
	public static void main(String[] args) {
		int a = 1, b = 1, c = 0;
		System.out.println("斐波那契數列前20項為:");
		System.out.print(a + "\t" + b + "\t");
		//因為前面還有兩個1、1 所以i<=18
		for (int i = 1; i <= 18; i++) {
			c = a + b;
			a = b;
			b = c;
			System.out.print(c + "\t");
			if ((i + 2) % 5 == 0)
				System.out.println();
		}
	}

}
//java程式設計:三種方法實現斐波那契數列
//其二方法:
public class Demo3 {
	// 定義陣列方法
	public static void main(String[] args) {
		int arr[] = new int[20];
		arr[0] = arr[1] = 1;
		for (int i = 2; i < arr.length; i++) {
			arr[i] = arr[i - 1] + arr[i - 2];
		}
		System.out.println("斐波那契數列的前20項如下所示:");
		for (int i = 0; i < arr.length; i++) {
			if (i % 5 == 0)
				System.out.println();
			System.out.print(arr[i] + "\t");
		}
	}

}

//java程式設計:三種方法實現斐波那契數列

//其三方法:

public class Demo4 {
	// 使用遞迴方法
	private static int getFibo(int i) {
		if (i == 1 || i == 2)
			return 1;
		else
			return getFibo(i - 1) + getFibo(i - 2);
	}

	public static void main(String[] args) {
		System.out.println("斐波那契數列的前20項為:");
		for (int j = 1; j <= 20; j++) {
			System.out.print(getFibo(j) + "\t");
			if (j % 5 == 0)
				System.out.println();
		}
	}

}
這道兔子題的實質就是斐波那契數列:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?現在從變數、陣列、遞迴三個角度出發解決這個puzzle,當然還有其它的方法,同一道題用各種不同的思路去思考解決,也是對知識綜合運用的鍛鍊吧。


相關推薦

數列-java程式設計方法實現數列

題目要求:編寫程式在控制檯輸出斐波那契數列前20項,每輸出5個數換行 //java程式設計:三種方法實現斐波那契數列 //其一方法: public class Demo2 { // 定義三個變數方法

java程式設計方法實現數列

題目要求:編寫程式在控制檯輸出斐波那契數列前20項,每輸出5個數換行 方法一:public class Fibonacci1{ //定義三個變數方法public static void main(String[] args) {int a=1, b=1, c=0;Syst

用遞迴,迭代,通項公式方法實現數列求解

斐波那契數列指的是這樣一個數列:1、1、2、3、5、8、13、21、……    這個數列從第三項開始,每一項都等於前兩項之和。它的通項公式為:(1/√5)*{[(1+√5)/2]^n -[(1-√5)/2]^n}(又叫“比內公式”,是用無理數表示有理數的一個範例。)(√5表

python使用遞迴、尾遞迴、迴圈方式實現數列

    在最開始的時候所有的斐波那契程式碼都是使用遞迴的方式來寫的,遞迴有很多的缺點,執行效率低下,浪費資源,還有可能會造成棧溢位,而遞迴的程式的優點也是很明顯的,就是結構層次很清晰,易於理解     可以使用迴圈的方式來取代遞迴,當然也可以使用尾遞迴的方式來實現。    

求菲數列數列第n項方法小結

菲波那切數列數列的應用場景還是比較多的,比如可以在考試的時候考你遞迴啊,早上碰到的一道題就是這樣,驕傲地寫下遞迴方程,結果TLE了,然後旁邊的大神給我說了一個叫滾動陣列的東西。。。題目是這樣的You

Python C/S 網路程式設計(一)之 方法實現天氣預報小程式

1. 首先明白下協議棧和庫的概念: 協議棧(Protocol Stack): 是指網路中各層協議的總和,其形象的反映了一個網路中檔案傳輸的過程:由上層協議到底層協議,再由底層協議到上層協議。 庫(Library):主要用來解析要使用的網路通訊協議,包含Python內建標準庫

MongoDB儲存Java物件的方法

MongoDB有三種方法來儲存java物件,一種是通過類實現DBObject介面,一種是利用spring-mongodb工具的物件對映功能,把java物件轉換成MongoDB的BSON文件,一種是通過序列化類例項,轉成二進位制儲存,MongoDB是支援二進位制的資料格式的

第六章方法輸出陣列元素,二維陣列的輸出方式

1使用陣列名和下標 #include<iostream> using namespace std; int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; for(int i=0;i<10;i++) cout<&

java註釋的方法 以及快捷鍵的使用

型別 註釋形式 快捷鍵 取消註釋快捷鍵 單行註釋 // 註釋內容 ctrl+/  ctrl+/ 多行註釋 /*... 註釋內容....*/ ctr

linux配置java環境變數方法

1. 修改/etc/profile檔案 如果你的計算機僅僅作為開發使用時推薦使用這種方法,因為所有使用者的shell都有權使用這些環境變數,可能會給系統帶來安全性問題。 ·用文字編輯器開啟/etc/profile ·在profile檔案末尾加入: export JAVA_HOME=/usr/share

方法實現java呼叫Restful介面

1,基本介紹 Restful介面的呼叫,前端一般使用ajax呼叫,後端可以使用的方法比較多,   本次介紹三種:     1.HttpURLConnection實現     2.HttpClient實現     3.Spring的RestTemplat

SPARK官方例項方法實現隨機森林模型(ML/MLlib)

在spark2.0以上版本中,存在兩種對機器學習演算法的實現庫MLlib與ML,比如隨機森林:org.apache.spark.mllib.tree.RandomForest 和org.apache.spark.ml.classification.RandomForestCl

java實現數列方法

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

使用Java列印數列方法

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

Python中幾常見方法實現數列

Python常見斐波那契解決方案 n=35 #1.遞迴求斐波那契 def fibo(n): return 1 if n<3 else fibo(n-1)+fibo(n-2) print(fibo(n)) #2.迴圈求斐波那契 f1,f2=0,1 for i

方法求解Fibonacci()數列

所謂Fibonacci數列是指這樣一種數列,它的前兩項均為1,從第三項開始各項均為前兩項之和。用數學公式表示出來就是:            1    &

3方法求解數列

Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7241 Accepted: 5131 Description In the Fibonacci integer sequence, F0 = 0, F

實現數列方法

斐波那契數列又稱黃金分割數列。它的特點是從第3個數開始,每一個數都等於前面兩個數相加。 例:0   1   1   2   3   5   8   13   21.。。。。。 從上我們可以總結出以下規

Java併發程式設計4執行緒池和緩衝佇列BlockingQueue

一. 執行緒池簡介 1. 執行緒池的概念:           執行緒池就是首先建立一些執行緒,它們的集合稱為執行緒池。使用執行緒池可以很好地提高效能,執行緒池在系統啟動時即建立大量空閒的執行緒,程式將一個任務傳給執行緒池,執行緒池就會啟動一

Java程式設計刪除 List 元素的正確方法(面試與開發必備)

刪除 List 中的元素會產生兩個問題: 刪除元素後 List 的元素數量會發生變化; 對 List 進行刪除操作可能會產生併發問題; 我們通過程式碼示例演示正確的刪除邏輯 package com.ips.list; import java.util.ArrayList; import jav