Algo faire sortir les chiffre d'un nombre

nadal1991 Messages postés 280 Statut Membre -  
achrefpascal Messages postés 1 Statut Membre -
Bonjour,
voila j'ai un petit probleme d'algorithmique ; alors j'ai un nombre avec n'importe quelle nombre de chiffre alors moi je voudrais faire sortir les chiffre de ce nombre un par un mais le probleme et que je n'arrive pas a trouver comment faire si on ne connait pas en avance le nombre de chiffre composant ce nombre , et tous ca sans utiliser les fonction , les chaine de caractere , '''''ca doit etre un type entier""

donc en tous je voulais savoir comment faire pour faire sortir les chiffre d'un nombre composé de n'importe quelle nombre de chiffre (sans fonction , sans chaine de caractere )

voila en tous c'est ca

merci beaucoup d'avance
Configuration: Windows XP
Firefox 3.0.4

4 réponses

  1. Wardog Messages postés 398 Statut Membre 159
     
    Bonsoir,

    tu te fais une fonction pour trouver la longueur de ton nombre.
    Prenons n = 5691
    Tu fais
    Tant que n est différent de 0 je divise n par 10 et j'incrémente i de 1
    n = n /10
    Soit
    5691 /10 i = 0
    569 /10 i = 1
    56 /10 i = 2
    5/10 i = 3
    0 i = 4

    et ton nombre est bien compose de 4 chiffres.

    Par exemple avec n = 5691

    int intlen(int n)
    {
    int i;

    i=0;
    if (n== 0)
    return (1);
    while (n != 0)
    {
    n /= 10;
    i++;
    }
    return (i);
    }

    Pour extraire chaque chiffre, tu peux utiliser la division et/ou le modulo %
    0
  2. nadal1991 Messages postés 280 Statut Membre 11
     
    je reprend le post parceque je comprend toujours pas comment faire pour extraire les nombre d'un chiffre je connais la methode du "mod" et du "div" mais je ne sais pas comment la generaliser (en utilisant n "nombre de chiffre ") pour un nombre qui a 3 chifre je peux ,, 4 chifre aussi mais seulement si je sais le nombre de chiffre au debut du programme

    donc si quelqun pouvait m'aider a comprendre comment generaliser cette methode de mod et div ca serai vraiment sympa

    merci beaucoup d'avance
    0
  3. nadal1991 Messages postés 280 Statut Membre 11
     
    silvouplait une reponse
    0
  4. achrefpascal Messages postés 1 Statut Membre
     
    bonsoir,

    tu peut convertir le nombre en chaine puis faire le traitement

    program exercice;
    uses wincrt;
    var n,i:longint; ch:string;
    begin
    write('introduire un entier :' );
    readln(n);
    str(n,ch);
    for i:= 1 to length(ch) do
    writeln('ciffre',i,' = ',ch[i]);
    end.
    0