题解 | #[NOIP2008]ISBN号码#
[NOIP2008]ISBN号码
https://www.nowcoder.com/practice/95712f695f27434b9703394c98b78ee5
#include<stdio.h> int main() { char arr[13] = { 0 }; //将13个字符的字符串存入数组 for (int i = 0; i < 13; i++) { scanf("%c",&arr[i]); } //字符数字转化为整型数字 int sum = 1 * (arr[0]-'0') + 2 * (arr[2]-'0') + 3 * (arr[3] - '0') + 4 * (arr[4] - '0') + 5 * (arr[6] - '0') + 6 * (arr[7] - '0') + 7 * (arr[8] - '0') + 8 * (arr[9] - '0') + 9 * (arr[10] - '0'); //retnum为取模结果。 int retnum = sum % 11; if (retnum == 10 && arr[12] == 'X')//取模结果为10,识别码正确的情况。 { printf("Right"); } else if (retnum != 10 && retnum == (arr[12] - '0'))//取模结果不为10,识别码正确的情况。 { printf("Right"); } else//识别码错误情况 { for (int i = 0; i < 12; i++) { printf("%c", arr[i]); } if(retnum==10)//取模结果为10,识别码应该为X。 { printf("X"); } else//否则识别码就是取模结果 { printf("%d", retnum); } } return 0; }