Solution algorithmique pour ce problème
boubou1987
-
flo13142 Messages postés 74 Statut Membre -
flo13142 Messages postés 74 Statut Membre -
Bonjour,
c'est ça le problème que je cherche à résoudre
"soit par exemple la date de naissance suivante"29/09/1988
on additionne les chiffres de la date de naissance:2+9+0+9+1+9+8+8=46
46 est composé de deux chiffres, on refait le meme traitement 4+6=10
10 est composé de deux chiffres, on refait le meme traitement 1+0=1
1 est composé d'un seul chiffre et c'est le chiffre de chance recherché
Ecrire une procedure permettant de saisir la date de naissance d'une personne sous forme jj/mm/aaaa(aucun controle n'est effectué) et appelle une fonction récursive qui cherche et retourne le chiffre de chance"
svp aidez moi
c'est ça le problème que je cherche à résoudre
"soit par exemple la date de naissance suivante"29/09/1988
on additionne les chiffres de la date de naissance:2+9+0+9+1+9+8+8=46
46 est composé de deux chiffres, on refait le meme traitement 4+6=10
10 est composé de deux chiffres, on refait le meme traitement 1+0=1
1 est composé d'un seul chiffre et c'est le chiffre de chance recherché
Ecrire une procedure permettant de saisir la date de naissance d'une personne sous forme jj/mm/aaaa(aucun controle n'est effectué) et appelle une fonction récursive qui cherche et retourne le chiffre de chance"
svp aidez moi
5 réponses
-
bonsoir
en vba deux fonctions recursives pour le même prix
où
Long est un type d'entier
ByVal indique que le parametre est passé par valeur
Len(a) > renvoie la longueur de la chaine a
round(a) > renvoie la partie entiere du réel positif a
Val(a) > renvoie la valeur numérique de la chaine a
str(a) > renvoie la chaine représentée par le nombre a
Mid(a,i,1) > renvoie le caractère de rang i dans la chaine a
LTrim(a) > renvoie la chaine a debarassée des espaces à gauche
RQ. avant d'envoyer s a la fonction chance, s doit etre debarassé de des "/"Function sommech(ByVal s As String) As Long If Len(s) = 1 Then sommech = Round(Val(s)) Else sommech = Round(Val(Left(s, 1))) + sommech(Right(s, Len(s) - 1)) End If End Function Function chancerec(ByVal s As String) As Long If Len(s) = 1 Then chancerec = s Else chancerec = chancerec(LTrim(Str(sommech(s)))) End If End Function
a toi de traduire -
hum...
explique moi comment t'aider a créer l'algorithme ? si on ne sait pas quel langage tu utilise... -
Salut,
Quelle partie te bloques dans le problème? En quel langage dois-tu l'écrire?
-
bsr,
c la partie recursive qui me bloque tjr (je veu juste un algorithme càd sauf lé démarche donc aucun langage n'est exigé merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
en considérant que la somme de tes chiffres est < 100, ce qui est le cas de 99/99/9999
nombre = 0 pour i = 0 à longueur (entree) nombre += entree[i]; fin pour chance ( nombre); function chance (nombre) { si nombre < 10 alors retourne nombre; sinon tmp = nombre / 10 + nombre % 10 chance (tmp); fin si }