Maison > développement back-end > tutoriel php > 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

藏色散人
Libérer: 2023-04-07 21:58:02
avant
2500 Les gens l'ont consulté

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; 
}
Copier après la connexion

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

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
Copier après la connexion

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!

Étiquettes associées:
php
source:nowamagic
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal