国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP迭代器實現斐波納契數列的函數

2024-09-04 11:49:52
字體:
來源:轉載
供稿:網友

斐波納契數列通常做法是用遞歸實現,當然還有其它的方法。這里現學現賣,用PHP的迭代器來實現一個斐波納契數列,幾乎沒有什么難度,只是把類里的next()方法重寫了一次。注釋已經寫到代碼中,也是相當好理解的。

  1. class Fibonacci implements Iterator {  
  2.     private $previous = 1;  
  3.     private $current = 0;  
  4.     private $key = 0;  
  5.  
  6.     public function current() {  
  7.         return $this->current;  
  8.     }  
  9.  
  10.     public function key() {  
  11.         return $this->key;  
  12.     }  
  13.  
  14.     public function next() {  
  15.   // 關鍵在這里 
  16.   // 將當前值保存到  $newprevious 
  17.         $newprevious = $this->current;  
  18.   // 將上一個值與當前值的和賦給當前值 
  19.         $this->current += $this->previous;  
  20.   // 前一個當前值賦給上一個值 
  21.         $this->previous = $newprevious;  
  22.         $this->key++;  
  23.     }  
  24.  
  25.     public function rewind() {  
  26.         $this->previous = 1;  
  27.         $this->current = 0;  
  28.         $this->key = 0;  
  29.     }  
  30.  
  31.     public function valid() {  
  32.         return true;  
  33.     }  
  34. }  
  35.  
  36. $seq = new Fibonacci;  
  37. $i = 0;  
  38. foreach ($seq as $f) {  
  39.     echo "$f ";  
  40.     if ($i++ === 15) break;  
  41. }  

程序運行結果:

  1. 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万载县| 金秀| 德惠市| 紫阳县| 中山市| 明溪县| 潍坊市| 清水县| 遵义市| 铅山县| 交城县| 调兵山市| 大理市| 长阳| 湟中县| 景洪市| 永城市| 连云港市| 文成县| 阳城县| 龙游县| 游戏| 南阳市| 苗栗市| 兴安县| 鹤岗市| 金堂县| 若羌县| 盈江县| 航空| 凤城市| 永年县| 北宁市| 甘谷县| 荣昌县| 邵武市| 庆阳市| 株洲县| 惠安县| 永兴县| 重庆市|