Bestimme anhand einer Zahl, ob sie nach der Luhn-Formel gültig ist.
Der Luhn-Algorithmus ist eine einfache Prüfsummenformel, mit der verschiedene Identifikationsnummern validiert werden, wie Kreditkartennummern und kanadische Sozialversicherungsnummern.
Die Aufgabe besteht darin, zu prüfen, ob ein gegebener String gültig ist.
Strings der Länge 1 oder weniger sind nicht gültig. Leerzeichen sind in der Eingabe erlaubt, aber sie sollten vor der Prüfung entfernt werden. Alle anderen Zeichen, die keine Ziffern sind, sind unzulässig.
4539 3195 0343 6467
Der erste Schritt des Luhn-Algorithmus besteht darin, jede zweite Ziffer zu verdoppeln, und zwar von rechts beginnend. Wir verdoppeln
4539 3195 0343 6467
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ (double these)
Ergibt das Verdoppeln einer Zahl einen Wert größer als 9, dann ziehe 9 vom Produkt ab. Die Ergebnisse unseres Verdoppelns:
8569 6195 0383 3437
Dann summiere alle Ziffern:
8+5+6+9+6+1+9+5+0+3+8+3+3+4+3+7 = 80
Wenn die Summe ohne Rest durch 10 teilbar ist, dann ist die Zahl gültig. Diese Zahl ist gültig!
8273 1232 7352 0569
Verdopple jede zweite Ziffer, von rechts beginnend
7253 2262 5312 0539
Summiere die Ziffern
7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57
57 ist nicht ohne Rest durch 10 teilbar, also ist diese Zahl nicht gültig.
Melde dich bei Exercism an, um CFML mit 51 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.
Wir erkunden 8 verschiedene Versionen von Luhn, beginnen mit einer sehr aufgeräumten Ruby-Implementierung, schauen uns einige imperative und funktionale Ansätze an und landen schließlich bei einer SQLite-Version, die Erik und Jeremy nur mit einiger Mühe entschlüsseln konnten!