Étant donné un nombre, détermine s'il est valide ou non selon la formule de Luhn.
L'algorithme de Luhn est une formule de somme de contrôle simple, utilisée pour valider divers numéros d'identification, comme les numéros de carte bancaire ou les numéros d'assurance sociale canadiens.
La tâche consiste à vérifier si une string donnée est valide.
Les strings de longueur 1 ou moins ne sont pas valides. Les espaces sont autorisés dans l'entrée, mais il faut les retirer avant de vérifier. Tous les autres caractères qui ne sont pas des chiffres sont interdits.
4539 3195 0343 6467
La première étape de l'algorithme de Luhn consiste à doubler un chiffre sur deux, en partant de la droite. On va donc doubler
4539 3195 0343 6467
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ (double these)
Si le double d'un chiffre donne un nombre supérieur à 9, on soustrait 9 au produit. Voici le résultat de nos doublements :
8569 6195 0383 3437
Additionne ensuite tous les chiffres :
8+5+6+9+6+1+9+5+0+3+8+3+3+4+3+7 = 80
Si la somme est divisible par 10, alors le nombre est valide. Ce nombre est valide !
8273 1232 7352 0569
Double un chiffre sur deux, en partant de la droite
7253 2262 5312 0539
Additionne les chiffres
7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57
57 n'est pas divisible par 10, donc ce nombre n'est pas valide.
Inscris-toi sur Exercism pour apprendre et maîtriser CFML avec 51 exercices, et un vrai mentorat humain, le tout gratuitement.
On explore 8 versions différentes de Luhn, en commençant par une implémentation Ruby très propre, en explorant quelques approches impératives et fonctionnelles, et en terminant par une version SQLite qu'Erik et Jeremy ont eu du mal à déchiffrer !