Somme des chiffres d'un nombre
marina
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, je cherche à écrire une fonction en scheme qui calcule la somme des chiffres d'un nombre , par exemple si j'ai :
(somme-chiffres 546) ça doit me donner 15 (5+4+6) .
Voici le code que j'ai écrit :
(define (somme-chiffres x)
(if (= x 0)
0
(if (not (= (somme-chiffres (quotient x 10)) 0))
(+ (modulo x 10))
0
)))
si x vaut 0 on renvoit 0
si quotient du nombre par 10 est différent de 0 , on fait l'addition du modulo du nombre par 10
546 / 10 = 54 , modulo 6
54/10 5 , modulo 4 , on a 6+4
mais ma fonction renvoie tjs 0 , c'est du au fait que à la fin le quotient vaut 0 et j'ai mis que ça doit renvoyer 0 , quelqu'un aurait il une idée pour corriger cela ?
merci
(somme-chiffres 546) ça doit me donner 15 (5+4+6) .
Voici le code que j'ai écrit :
(define (somme-chiffres x)
(if (= x 0)
0
(if (not (= (somme-chiffres (quotient x 10)) 0))
(+ (modulo x 10))
0
)))
si x vaut 0 on renvoit 0
si quotient du nombre par 10 est différent de 0 , on fait l'addition du modulo du nombre par 10
546 / 10 = 54 , modulo 6
54/10 5 , modulo 4 , on a 6+4
mais ma fonction renvoie tjs 0 , c'est du au fait que à la fin le quotient vaut 0 et j'ai mis que ça doit renvoyer 0 , quelqu'un aurait il une idée pour corriger cela ?
merci
A voir également:
- La somme des chiffres
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Recherchev + somme plusieurs lignes ✓ - Forum Excel
- Somme en anglais excel - Guide
- Tous les code possible de 0 à 9 (4 chiffres ) liste - Forum Programmation
11 réponses
Non ton code ne correspond pas à ton algo.
En fait je t'explique : dans 145, comment récupérer le 1 ? Il est plus facile de récupérer le 5 avec un simple modulo 10 non ?
En gros la fonction somme-chiffres renvoie le chiffre des unités.
Ensuite on effectue une addition entre le chiffre des unités et avec somme-chiffres (Et en arguments on renvoie 14, donc (quotient 145 10).
Du coup 5 + 4 + 1.
Sinon, laisse moi te dire qu'il y a des langages qui sont beaucoup plus simples lol. Le scheme utilise beaucoup de parenthèses, et n'est plus beaucoup utilisé. Après, ça dépend si tu souhaites faire de l'intelligence artificielle ou c'est bien pratique. Mais si c'est juste pour apprendre la programmation, il en existe des beaucoup plus simples ;)
En fait je t'explique : dans 145, comment récupérer le 1 ? Il est plus facile de récupérer le 5 avec un simple modulo 10 non ?
En gros la fonction somme-chiffres renvoie le chiffre des unités.
Ensuite on effectue une addition entre le chiffre des unités et avec somme-chiffres (Et en arguments on renvoie 14, donc (quotient 145 10).
Du coup 5 + 4 + 1.
Sinon, laisse moi te dire qu'il y a des langages qui sont beaucoup plus simples lol. Le scheme utilise beaucoup de parenthèses, et n'est plus beaucoup utilisé. Après, ça dépend si tu souhaites faire de l'intelligence artificielle ou c'est bien pratique. Mais si c'est juste pour apprendre la programmation, il en existe des beaucoup plus simples ;)