IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Compter une chaine numérique


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut Compter une chaine numérique
    Bonjour à tous,

    J'ai une chaine qui ne comporte que des chiffres, mais elle est composée de chiffres et de nombres mis bout a bout mais toujours croissants :

    123678910111314

    Comment récupérer le nombre de chiffres et de nombres

    Ce qui donnerai :

    7 chiffres
    4 nombres

    résultat voulu : 11

    PS : il peut y avoir certains chiffres ou nombres manquants.

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    personnellement, je n'ai absolument rien compris a ton probleme....

    les chiffres sont : 0,1,2,3,4,5,6,7,8,9
    les nombres sont compose de chiffres

    comment veux-tu faire la difference entre les chiffres et les nombres dans ta chaine
    123678910111314
    edit : ah, je crois que j'ai compris... dans ta chaine tu aurais 1,2,3,6,7,8,9,10,11,13,14 c'est ca ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Dès que dans la suite on rencontre un nombre c'est a dire avec le premier chiffre inférieur au dernier chiffre lu

    après un 8 si il y a 12, forcément après le 8, c'est un nombre.

    J'ai oublié de signaler que la suite était toujours croissante.

  4. #4
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    bon, rapidement... ca devrait te convenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $chaine="123678910111314";
    $taille=1;//taille du nombre en cours
    $nombre=0;//nombre en cours
    $total=0;//nombre total trouve
    for($i=0;$i<strlen($chaine);$i+=$taille)
    {
    	if(substr($chaine,$i,$taille)<$nombre)
    		$taille++;
    	$nombre=substr($chaine,$i,$taille);
    	echo $nombre.'<br />';
    	$total++;
    }
    echo 'soit : '.$total.' nombres';
    ?>
    edit : ce code fonctionne si tu passe d'un nombre a 1 chiffre a un nombre a 2 chiffres, puis de 2 chiffres a 3 chiffres etc...

    est-il possible que dans ta chaine on passe de 9 a 112 (par exemple)
    => dans ces cas.. mon code ne t'irai pas

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    après un 8 si il y a 12, forcément après le 8, c'est un nombre.
    et dans 789 tu as 7, 89 ou 7,8,9 ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Points : 153
    Points
    153
    Par défaut
    Génial, époustouflant, cela marche super

    Un grand MERCI

    PS : pour sabotage, il a raison mais j'avais oublié de signaler que le maximun de séquences était de 20 et que les écarts n'exédait pas 2 ou 3.

    Je cherche également le mème code en JavaScript.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compter une chaine de caratère dans une cellule.
    Par natcre dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/10/2007, 15h56
  2. Fonction pour une chaine numérique
    Par miya dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/05/2007, 14h21
  3. compter une chaine de caractére
    Par lassmust dans le forum Langage
    Réponses: 1
    Dernier message: 05/01/2006, 11h19
  4. conversion une chaine numérique en lettre
    Par nazimb dans le forum ASP
    Réponses: 1
    Dernier message: 20/11/2005, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo