[問題] 關於身分證字號判斷
以下是小弟在網路上看到的函式,想請問各位高手
為什麼return checksum %10 == 0; 可以表示 return 1;
麻煩各位高手解惑,萬分感激!
int checkSID(char * str)
{
char string[]="ABCDEFGHJKLMNPQRSTUVWXYZIO"; //10~35
int i, checksum;
if ( strlen(str) == 10 && (str[1] == '1' ||str[1] == '2') )
{
i = strchr(string, str[0] & 0xDF) - string + 10;
checksum = i / 10 + i % 10 * 9;
for(i = 1; i < 9; ++i)
checksum += (str[i] - '0') * (9 - i);
checksum += (str[9] - '0');
return checksum % 10 == 0;
}
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.212.80
※ 編輯: acerder 來自: 122.118.212.80 (12/30 01:09)
※ 編輯: acerder 來自: 122.118.212.80 (12/30 01:12)
推
12/30 01:15, , 1F
12/30 01:15, 1F
→
12/30 01:16, , 2F
12/30 01:16, 2F
→
12/30 01:16, , 3F
12/30 01:16, 3F
→
12/30 01:17, , 4F
12/30 01:17, 4F
→
12/30 01:18, , 5F
12/30 01:18, 5F
→
12/30 01:18, , 6F
12/30 01:18, 6F
推
12/30 01:19, , 7F
12/30 01:19, 7F
→
12/30 01:19, , 8F
12/30 01:19, 8F
→
12/30 01:44, , 9F
12/30 01:44, 9F
→
12/30 01:45, , 10F
12/30 01:45, 10F
→
12/30 01:47, , 11F
12/30 01:47, 11F
→
12/30 02:25, , 12F
12/30 02:25, 12F
→
12/30 02:26, , 13F
12/30 02:26, 13F
→
12/30 02:27, , 14F
12/30 02:27, 14F
→
12/30 02:27, , 15F
12/30 02:27, 15F
→
12/30 02:28, , 16F
12/30 02:28, 16F
→
12/30 02:35, , 17F
12/30 02:35, 17F
→
12/30 10:51, , 18F
12/30 10:51, 18F
→
12/30 10:52, , 19F
12/30 10:52, 19F
→
12/30 10:53, , 20F
12/30 10:53, 20F