#32517: 非常好理解寫法


B10915003 (拉皮皮)

學校 : 國立臺灣科技大學
編號 : 135404
來源 : [118.169.7.173]
最後登入時間 :
2024-02-03 13:49:28
a020. 身分證檢驗 | From: [140.118.134.210] | 發表日期 : 2022-10-18 12:54

ASCII A = 65

#include <stdio.h>

int main(int argc, char const *argv[])
{
//get user input
int valid_num = 0;
char c = getchar();
int c_num = 0;
int n1 = getchar() - '0';
int n2 = getchar() - '0';
int n3 = getchar() - '0';
int n4 = getchar() - '0';
int n5 = getchar() - '0';
int n6 = getchar() - '0';
int n7 = getchar() - '0';
int n8 = getchar() - '0';
int n9 = getchar() - '0';
int garbage = getchar();
//printf("%c%d%d%d%d%d%d%d%d%d",c ,n1, n2, n3, n4, n5, n6, n7, n8, n9);

if (c >= 'A' && c <= 'H')
{
c_num = c - 55;
}
else if (c >= 'J' && c < 'N')
{
c_num = c - 56;
}
else if (c >= 'P' && c <= 'V')
{
c_num = c - 57;
}
else if (c >= 'X' && c <= 'Y')
{
c_num = c - 58;
}
else if (c == 'W')
{
c_num = 32;
}
else if (c == 'Z')
{
c_num = 33;
}
else if (c == 'I')
{
c_num = 34;
}
else if(c == 'O')
{
c_num = 35;
}

//printf("c_num = %d\n", c_num);
 
valid_num = (c_num / 10) + (c_num % 10 * 9) + (n1 * 8) + (n2 * 7)
+ (n3 * 6) + (n4 * 5) + (n5 * 4) + (n6 * 3) + (n7 * 2) + (n8 * 1) + n9;
 
if (valid_num % 10 == 0)
{
printf("real\n");
}
else
{
printf("fake\n");
}

return 0;
}
 
ZeroJudge Forum