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
41 + 43 + 07 + 59 + 11 + 43 + 07 + 19 + 41 + 53 + 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
include<stdio.h>
int main()
{
int test,suma, i;
char* pesel;
scanf("%d",&test);
for(i=0;i<test;i++)
{
scanf("%d",&suma);
if(suma%10 == 0)
suma=(int)pesel[0];
suma+=(int)pesel[1] * 3;
suma+=(int)pesel[2] * 7;
suma+=(int)pesel[3] * 9;
suma+=(int)pesel[4];
suma+=(int)pesel[5] * 3;
suma+=(int)pesel[6] * 7;
suma+=(int)pesel[7] * 9;
suma+=(int)pesel[8];
suma+=(int)pesel[9] * 3;
suma+=(int)pesel[10];
printf("D\n");
}
printf("N");
return 0;
}
I wychodzi w pierwszym D a w drugim niestety D N . Czyli coś jest zrobione źle z pętlą?...