Dies ist ein sehr sehr einfacher Algorithmus, der sicher in vielen verschiedenen Sprachen gelöst werden kann. In Spanien bestehen Ausweise ( DNI ) aus 8 Ziffern und einem Steuerzeichen. Das Steuerzeichen wird mit dem folgenden Algorithmus berechnet: Teilen Sie die Zahl durch 23, nehmen Sie den Rest der Operation und ersetzen Sie sie durch ein Zeichen gemäß dieser Tabelle:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
T R W A G M Y F P D X B N J Z S Q V H L C K E
Wenn der DNI einer in Spanien lebenden ausländischen Person gehört, wird die erste Ziffer in geändert X
, Y
oder, Z
und es wird ein NIE genannt . In diesem Fall werden vor der Berechnung des Steuerzeichens folgende Ersetzungen vorgenommen:
X Y Z
0 1 2
Es gibt viele Taschenrechner im Internet, mit denen Sie das Steuerzeichen ermitteln können. Aber wie kurz können Sie diesen Code schreiben? Schreiben Sie einen Algorithmus (Programm oder Funktion), der eine string
mit der DNI-Nummer (die immer aus 8 alphanumerischen Zeichen besteht) erhält und nur das berechnete einzelne Steuerzeichen und nichts weiter zurückgibt (eine abschließende Zeile wird akzeptiert).
Anmerkungen:
- Der DNI wird immer in Großbuchstaben geschrieben, aber in Ihrem Algorithmus können Sie die Eingabe und Ausgabe als Groß- oder Kleinbuchstaben auswählen, nur konsistent.
- Im wirklichen Leben, einige vor 2008 ausgestellt NIEs haben 8 Stellen nach dem
X
,Y
oderZ
aber für die Zwecke dieses Spiel, können betrachten Sie sie haben 7 Ziffern , wie sie heute haben. - Sie können davon ausgehen, dass die Eingabezeichenfolge immer 8 Zeichen hat. Wenn sie jedoch weder das Format "8 Stellen" noch das Format "[XYZ] plus 7 Stellen" aufweist, müssen Sie einen Fehler (Ihrer Wahl) zurückgeben oder einfach werfen eine Ausnahme.
Testfälle:
00000010 -> X (HRM Juan Carlos I's DNI number)
01234567 -> L
98765432 -> M
69696969 -> T
42424242 -> Y
Z5555555 -> W (Z=2)
Y0000369 -> S (Y=1)
A1234567 -> <Error code or exception>
1231XX12 -> <Error code or exception>
Das ist Code-Golf , also kann der kürzeste Code für jede Sprache gewinnen!