我們都知道斐波那契數列有很多種實現方法,在jdk1.8以前沒有流操作,只能通過遞迴或者迭代等其他方式來實現斐波那契數列,
但是jdk1.8以後,有了流操作,我們就可以使用流來實現斐波那契數列.
stream.iterate(newint , i -> new
int )
.limit(10)
.foreach(i -> system.out.print(i[0]+", "));
//0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
stream.iterate生成乙個無限流,所以這裡使用limit把數量限制在了10,使用int陣列來儲存結果,每次流操作返回的
new int )第二個為前兩個數字之和,正好符合斐波那契數列,所以也不用搞什麼迭代,遞迴等等,直接流操作來實現吧.而且流操作在內部也會優化,使用cpu的多處理器來處理資料,不用考慮併發問題.
技術的發展不可避免,我們能做的只是跟上技術的發展,可以看到很多實現在jdk1.8的環境上已經變得很簡單了.
Stream建立斐波那契數列
stream 流 是遞迴的資料結構,包含乙個表頭 當前元素 和乙個表尾 集合的其餘部分 可以利用乙個函式和函式的遞迴呼叫來構建流。stream.cons head,tail head是stream中的表頭,tail是餘下的元素 例子 給定乙個整數值,建立乙個連續遞增的整數集合 scala def i...
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
實現斐波那契數列
方法 一 通過迭代器實現 class fibiterator object def init self,n self.n n 是使用current儲存當前數列中第幾個數 self.current 0 使用num1儲存數列中前乙個數,初始值為0 self.num1 0 使用num2儲存數列中後乙個數,...