Algo nb de chiffres

Résolu
Bonjour, je n'arrive pas a faire un algorithme, voici le sujet :

-ecrire la fonction Nchiffres qui obtient une valeur entière N (possitive ou négative) comme paramètre et qui fournit le nombre de chiffre de N comme résultat.

-ecrire un petit programme qui test la fonction Nchiffre
exemple : chiffre entré : 70000
Nombre de chiffre entrées : 5
Configuration: Windows 7
Firefox 3.6

7 réponses

  1. Bonjour,

    Divise ton nombre par 10 jusqu'à ce que tu aies un résultat inférieur à 1, et renvoie le nombre de divisions que tu as faites.

    Xavier
    1
    1. Modérateur
      Salut,

      calcule le log (base10) de sa valeur absolue, tu peux en déduire le nombre de chiffres : si le log est entier, alors c'est le nombre de chiffres cherchés, si le log n'est pas entier, tu l'arrondis à l'entier supérieur, et ça te donne aussi le nombre de chiffres...

      N'oublie pas de calculer un nombre de décimales suffisant...

      C'est comme répéter les divisions, mais c'est moins long... :-)

      Y'a juste une exception pour le 1...
      0
      1. Aurriez-vous un exemple? svp, car la sa me rappel juste les conversions en base binaire et décimal
        0
        1. Facile :

          fonction nombreDeChiffres(nombre
          {
          déclarer chiffre en entier
          boucle while (nombre > 10)
          {

          nombre = nombre/10
          chiffre++
          }

          si nombre >0
          chiffre ++

          renvoyer chiffre
          }

          Je pense que ça devrait marcher
          0
          1. Je viens de tester ça marche ;) .
            0
            1. Facile :

              fonction nombreDeChiffres(nombre
              {
              déclarer chiffre en entier
              boucle while (nombre > 10)
              {

              nombre = nombre/10
              chiffre++
              }

              si nombre >0
              chiffre ++

              renvoyer chiffre
              }

              Je pense que ça devrait marcher

              C'est en quel language, car moi je connais que le vb et l'algo papier....
              0
              1. Modérateur
                Tu as demandé un algorithme, par définition, c'est écrit en pseudo-langage, adaptable en fonction de ce que tu dois utiliser.
                0
            2. Si tu connais VB.NET voilà la "traduction" :

              Function nombreDeChiffre(ByVal nombre)
              Dim chiffre As Integer = 0

              While nombre > 10
              nombre = nombre / 10
              chiffre = chiffre + 1
              End While

              If nombre > 0 Then
              chiffre = chiffre + 1
              End If

              Return chiffre
              End Function
              0