Suite logique

Contenu du snippet

Une suite logique que j'ai découvert dans un des livres de Bernard Werber :

1
11
21
1211
111221
312211
etc...

La voici adaptée en php, ça ne sert pas à grand chose mais bon, ça affute l'esprit comme dirait l'autre ;).

Source / Exemple :


<?php 
$loop = 20; // on le fait "$loop" fois
$line = '1';

for($i=0;$i<$loop;$i++) {
    echo $line;         // on affiche la derniere ligne
    $l = strlen($line); // on recupere la taille de la chaine
    $nb = 0;            // on initialise le nombre d'occurence
    $curLine = '';        // on initialise ce qui deviendra la ligne suivante
    for($j=0;$j<=$l;$j++) { // pour chaque lettre de la ligne precedente
        if($j===0) {        // si on est au premier caractere c'est forcement une premiere occurence
            $nb++;            // on incremente
        } else if($j!==$l && $line[$j-1]===$line[$j]) { // si la lettre precedente est la même que l'actuelle
             $nb++;            // on incremente
        } else {            // sinon
            $curLine .= $nb.$line[$j-1]; // on ajoute le nombre d'occurence de la lettre precedente et la lettre precendente a ce qui deviendra la ligne suivante
            $nb = 1;    // on reinitilalise le nombre d'occurence (pas la meme lettre donc forcement premiere occurence)
        }
    }
    $line = $curLine;    // la prochaine ligne à parser est celle que l'on a construit
    echo '<br/>';    // saut de ligne sinon c'est pas beau (et on ne comprend rien accesoirement)
}
?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.