Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

JPESEL - Pesel

Jan Kowalski musi wpisać do systemu szpitalnego dane osobowe pacjenta, oprócz imienia i nazwiska musi również wpisać PESEL pacjenta. Jakież było jego zdziwienie, gdy spostrzegł, że pewnych pacjentów system nie przyjmował z powodu wadliwego PESELu.

Twoim zadaniem jest sprawdzenie, czy podana liczba 11-cyfrowa jest poprawnym PESELem.

Aby sprawdzić czy dany PESEL jest prawidłowy należy wykonać następujące działania:

Pierwszą cyfrę mnożymy przez 1,
drugą cyfrę mnożymy przez 3,
trzecią cyfrę mnożymy przez 7,
czwarta cyfrę mnożymy przez 9,
piątą cyfrę mnożymy przez 1,
szóstą cyfrę mnożymy przez 3,
siódmą cyfrę mnożymy przez 7,
ósmą cyfrę mnożymy przez 9,
dziewiątą cyfrę mnożymy przez 1,
dziesiątą cyfrę mnożymy przez 3,
jedenastą cyfrę mnożymy przez 1.

Tak uzyskane 11 iloczynów dodajemy do siebie. Jeśli ostatnia cyfra tej sumy jest zerem to podany PESEL jest prawidłowy. Przykład dla numeru PESEL 44051401458

4*1 + 4*3 + 0*7 + 5*9 + 1*1 + 4*3 + 0*7 + 1*9 + 4*1 + 5*3 + 8*1 = 4 + 12 + 0 + 45 + 1 + 12 + 0 + 9 + 4 + 15 + 8 = 110

Źródło: www.wikipedia.pl

Jeśli suma jest większa od zera, wtedy sprawdzamy jej poprawność. W przeciwnym przypadku nr PESEL jest błędny. Ponieważ ostatnia cyfra liczby 110 jest zerem więc podany PESEL jest prawidłowy.

Na wejściu podana jest w pojedyńczej linii ilość t<=100 numerów PESEL do sprawdzenia. W kolejnych t liniach są 11-cyfrowe liczby.

Output

W pojedyńczej linii powinna zostać wyświetlona litera D, jeśli numer PESEL jest poprawny lub N, gdy nie.

Example

Input:
2
44051401458
12345678901

Output:
D
N


Dodane przez:Jarosław Drzeżdżon
Data dodania:2007-01-21
Limit czasu wykonania programu:0.232s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: GOSU

ukryj komentarze
2017-06-30 22:42:27
Po komentarzach wydawało mi się, że będzie dużo problemów z tym zadaniem. Na szczęście wystarczyło po prostu zrobić to co w poleceniu (dodać do siebie iloczyny i sprawdzić czy ostatnia cyfra sumy jest zerem), by rozwiązanie zostało zaakceptowane.
2017-05-19 19:56:19
W sprawdzaniu zadania jest jeden diametralny błąd.
Nie zaliczyło mi, kiedy mnożyłem kolejne cyfry numeru pesel i suma przy pierwszym teście wynosiła 110 (jak w omawianym przykładzie) , a zaliczyło kiedy mnożyłem nie cyfry tylko ich kody ASCII i suma wyniosła 2270.
2017-04-20 14:23:53
Odnośnie 2017-02-24 22:53:25 i 2017-03-02 19:45:02
nazwa klasy nie ma znaczenia, wystarczy klasę zrobić niepubliczną- usunąć przed nazwą klasy słowo "public".
Pozdrawiam
2017-03-02 19:45:02
ODnośnie 2017-02-24 22:53:25 - każde zadanie ,działający kod powinien być w klasie o nazwie Main nie Pesel .
2017-02-24 22:53:25
Witam, jestem tu nowy i mam pytanie odnośnie kodu, mianowicie pokazuje mi "
Main.java:3: error: class Pesel is public, should be declared in a file named Pesel.java
public class Pesel" gdzie na kompilatorze na laptopie program działa bez zarzutów. Gdzie mogę szukać przyczyny tego komunikatu? Pozdrawiam i dziękuję za odpowiedzi
2010-03-05 21:06:19 S³awomir Siwek
Jeżeli Jan Kowalski miał taki algorytm do sprawdzania cyfry kontrolnej PESEL jak w opisie do zadanie to faktycznie miał prawo być zdziwiony. :-)

Przedstawiony algorytm do wyliczenia cyfry kontrolnej w numerze PESEL zawiera błąd. Skopiowany z wikipedii.
Testy też zawierają błąd :-) Nie ma w nich przypadku, kiedy PESEL kończy się cyfrą zero. Mój kod tego nie sprawdza (zapomnienie) a został zakwalifikowany.

Po wyliczeniu sumy iloczynów 'suma' należy wykonać następujące działanie:
cyfraKontrolna = 10 - suma mod 10
Przy czym jeśli cyfraKontrolna = 10 to wtedy nie wpisuje się 10 tylko zero.

Tutaj jest to opisane tak jak to jest w rzeczywistości.
http://wipos.p.lodz.pl/zylla/ut/pesel.html

Ostatnio edytowany: 2010-03-05 21:10:37
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.