지 체크하는 일정한 법칙이 있다.
8 2 0 1 0 1-1 2 3 4 5 6 7(식별변호,CheckSum)
* * * * * * * * * * * *
(2,3,4,5,6,7,8,9,2,3,4,5)
각 자릿수를 곱한후에 각각의 자리수를 합한뒤. CheckSum == 11 - (총합 % 11 ) 을 해준다.
int Check_ident(char *ident)
{
int check_num[13] = { 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5};
int max = 12;
int i, sum = 0;
bool mode = true;
for(i = 0 ; i < max ; i++)
{
if( ident[i] == '-' )
{
mode = false;
continue;
}
if( mode )
sum = sum + (ident[i] - '0') * check_num[i];
else if ( !mode )
{
sum = sum + (ident[i] - '0') * check_num[i-1];
max = 13;
}
}
if( ident[max] - '0' == 11 - sum % 11 )
{
gotoxy(10,12);
printf("입력하신%s은(는) 올바른번호입니다.\n", ident);
return 0;
}
else
{
clrscr();
gotoxy(10,12);
printf("입력하신%s은(는) 잘못된번호입니다.\n", ident);
return 1;
}
}
