algorytm.org

Implementacja w JavaScript



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Numer dowodu osobistego - Implementacja w JavaScript
Ocena użytkownikóww: *****  / 5
SłabyŚwietny
Nadesłany przez Karol Gontarski, 06 lutego 2013 22:28
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

dowod_osobisty.js:
var nd = "ASY856032";
num = eval(nd.length===9 && parseInt(nd[3]) === eval(nd.split("").map(function(v, i) {return(v.charCodeAt() * [7,3,1,0,7,3,1,7,3][i]) - [385,165,55,0,336,144,48,336,144][i];}).join('+'))%10);
//          |                           |    |          |           |> mapowanie liter i przemnożenie przez wektor [7,3,1,0,7,3,1,7,3]  |>odjęcie różnicy wartości tab. ASCII  |        | |> modulo 10
//          |> sprawdzenie dlugości     |    |          |> zamiana numeru na tablice                                                                                           |        |> ewaluacja stringa
//                                      |    |> sprawdzenie poprawności sumy kontrolnej                                                                                        |> zamiana tablicy na string
//                                      |> pobranie sumy kontrolnej
console.log(num);                       
Komentarze
photo
+1 # Romek 2014-01-04 15:07
Przydałoby się wyjaśnienie tych dziwnych liczb 385,165,55,0,336,144 itd
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz