摘要:今天去面試筆試題斐波那契數列實現,雖然很簡單。回來想想既然算法這么重要那就從這個開始來記錄自己的算法庫吧。在數學上,斐波納契數列以如下被以遞歸的方法定義,,。斐波拉契算法規律很簡單,,觀察下數列值就很容易總結出來了。
一、寫在前面
算法這塊對于大多數程序員(包括我)來說可能都是一個薄弱的地方,如何彌補尼? 每個人都知道那就是學習、特別是算法沒有任何捷徑可走。
在這記錄平時自己工作和生活中遇到的一些算法,以便來自己來溫故。
今天去面試筆試題 斐波那契數列 實現,雖然很簡單。回來想想既然算法這么重要那就從這個開始來記錄自己的算法庫吧。
二、簡介斐波那契數列(Fibonacci sequence)的定義: 斐波拉契數列是指這樣的一組數據 0、1、1、2、3、5、8、13、21……這個數列其實很容易找到規律的從第三項開始每一項值都等于前兩項之和(fn = f(n-1) + f(n-2))
斐波那契數列又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”。在數學上,斐波納契數列以如下被以遞歸的方法定義:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。
算法基本概念很好理解,下面我們來看看用代碼來實現下。
實現其實數學公式已經有了,F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2) 那我們就用遞歸來實現下
public class PrintFib { //建立一個函數,用于計算數列中的每一項 public static int fib(int num) { if(num <= 0 ){ return 0; } if(num == 1 || num == 2) { return 1; } //循環調用本函數 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) + " "); } } }
實現很簡單,結果我就不答應了, 感興趣的同學可以自己試一下。
總結算法的學習是一個很枯燥的過程, 但是當你征服一個算法也會給你帶來很大愉悅感。
在學習算法時,我們首先要搞明白其產生的原因,是為了解決什么問題, 再去學習起數學公式,最后在以coding的方式去實現就比較簡單了。
斐波拉契算法規律很簡單,F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2) 觀察下數列值就很容易總結出來了。
當你總結出規律后使用代碼實現起來就比較簡單了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74794.html
摘要:大名鼎鼎的斐波那契數列,,,,,,,,使用數學歸納法可以看出其規律為。對于斐波那契數列的求解,有自頂向下的記憶化搜索遞歸和自下向上的迭代法,他們都使用了動態規劃的思想。 大名鼎鼎的斐波那契數列:0,1,1,2,3,5,8,13,21...使用數學歸納法可以看出其規律為:f(n) = f(n-1) + f(n-2)。 遞歸 下面首先直接使用遞歸(JavaScript實現)來求解第 n ...
摘要:這是一個簡單的遞歸函數,你可以使用它來生成數列中指定序號的數值這個函數的問題在于它的執行效率非常低有太多值在遞歸調用中被重新計算。 本章內容銜接上一章 數據結構與算法:二分查找 內容提要 兩種基本數據結構: 數組 常見操作: 數組降維、數組去重 鏈表 遞歸:遞歸是很多算法都使用的一種編程方法 - 如何將問題分成基線條件和遞歸條件 - 分而治之策略解決棘手問題 ...
摘要:這是一個簡單的遞歸函數,你可以使用它來生成數列中指定序號的數值這個函數的問題在于它的執行效率非常低有太多值在遞歸調用中被重新計算。 本章內容銜接上一章 數據結構與算法:二分查找 內容提要 兩種基本數據結構: 數組 常見操作: 數組降維、數組去重 鏈表 遞歸:遞歸是很多算法都使用的一種編程方法 - 如何將問題分成基線條件和遞歸條件 - 分而治之策略解決棘手問題 ...
摘要:有一類算法問題類似斐波那契數列,而且解決辦法基本差不多。不了解斐波那契套路的可以看刷算法斐波那契數列跳臺階問題題目描述一只青蛙一次可以跳上級臺階,也可以跳上級。給定整數,求年后牛的數量。分析設為年后牛的數量,則第年牛的來源有兩個。 有一類算法問題類似斐波那契數列,而且解決辦法基本差不多。不了解斐波那契套路的可以看【刷算法】斐波那契數列 跳臺階問題 題目描述一只青蛙一次可以跳上1級臺階,...
摘要:那其實這個問題還可以換個問法實現一個函數,輸入一個數字能返回斐波那契數列的第個值。文章預告更多的前端面試分享我都會第一時間更新在我的公眾號閏土大叔里面,歡迎關注 面試攢經驗,lets go! 值此高考來臨之際,閑不住的我又雙叒叕出發去面試攢經驗了,去了公司交待一番流程后,面試官甩給了我一張A4紙,上面寫著一道js算法筆試題(一開始我并不知道這是在考察js算法),上面寫著1、1、2、3、...
閱讀 2376·2021-09-22 15:15
閱讀 640·2021-09-02 15:11
閱讀 1784·2021-08-30 09:48
閱讀 1884·2019-08-30 15:56
閱讀 1480·2019-08-30 15:52
閱讀 2042·2019-08-30 15:44
閱讀 431·2019-08-29 16:29
閱讀 1538·2019-08-29 11:06