Algo nb de chiffres

Résolu
sebdu70 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
 Orion-Pyro - 17 févr. 2010 à 11:58
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

7 réponses

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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
blux Messages postés 26910 Date d'inscription   Statut Modérateur Dernière intervention   3 341
 
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
sebdu70 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Aurriez-vous un exemple? svp, car la sa me rappel juste les conversions en base binaire et décimal
0
Orion-Pyro
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Orion-Pyro
 
Je viens de tester ça marche ;) .
0
sebdu70 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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
blux Messages postés 26910 Date d'inscription   Statut Modérateur Dernière intervention   3 341
 
Tu as demandé un algorithme, par définition, c'est écrit en pseudo-langage, adaptable en fonction de ce que tu dois utiliser.
0
Orion-Pyro
 
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