国产探花免费观看_亚洲丰满少妇自慰呻吟_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 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 闽清县| 洪湖市| 鹤壁市| 康平县| 秀山| 芜湖市| 台前县| 丘北县| 兴安盟| 梁山县| 平顶山市| 灵武市| 安阳县| 阿尔山市| 翁牛特旗| 武宣县| 马山县| 安庆市| 固原市| 泰顺县| 四平市| 密山市| 鹤壁市| 柘城县| 江北区| 措勤县| 澎湖县| 赫章县| 金秀| 措美县| 高台县| 巴青县| 乌鲁木齐市| 邻水| 兴文县| 怀仁县| 曲阜市| 丰宁| 买车| 竹北市| 竹北市|