Maison  >  Article  >  développement back-end  >  Comment utiliser l'itérateur PHP pour implémenter une séquence de Fibonacci

Comment utiliser l'itérateur PHP pour implémenter une séquence de Fibonacci

藏色散人
藏色散人avant
2019-12-04 10:40:422413parcourir

La séquence de Fibonacci est généralement implémentée de manière récursive, mais il existe bien sûr d'autres méthodes. Ici, vous pouvez apprendre et vendre maintenant. Il n'est presque pas difficile d'utiliser l'itérateur PHP pour implémenter une séquence de Fibonacci. Il vous suffit de réécrire la méthode next() dans la classe.

Les commentaires ont été écrits dans le code et sont assez faciles à comprendre.

/**
* @author 简明现代魔法 http://www.nowamagic.net
*/
class Fibonacci implements Iterator { 
    private $previous = 1; 
    private $current = 0; 
    private $key = 0; 
    
    public function current() { 
        return $this->current; 
    } 
    
    public function key() { 
        return $this->key; 
    } 
    
    public function next() { 
// 关键在这里
// 将当前值保存到  $newprevious
        $newprevious = $this->current; 
// 将上一个值与当前值的和赋给当前值
        $this->current += $this->previous; 
// 前一个当前值赋给上一个值
        $this->previous = $newprevious; 
        $this->key++; 
    } 
    
    public function rewind() { 
        $this->previous = 1; 
        $this->current = 0; 
        $this->key = 0; 
    } 
    
    public function valid() { 
        return true; 
    } 
} 
$seq = new Fibonacci; 
$i = 0; 
foreach ($seq as $f) { 
    echo "$f "; 
    if ($i++ === 15) break; 
}

Résultat de l'exécution du programme :

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

Recommandé : "Tutoriel PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer