作者:HLJU_23_庞轩
- 遍历ISBN码 —— 通过取范围'0'到'9'之间,得到九个int型数字(ch[i)- '0')
- 按题目所说得到累加值sum
- 判断 —— 判断条件有两个
- 首先是一般条件 对sum取模11与识别码比较
- 其次是特殊条件 如果sun取模11等于10,如果假设识别码正确,那么识别码不应该等于'9' + 1,而应该等于'X' 附代码:
using namespace std;
int main() {
string ch;
cin >> ch;
int n = ch.length();
int a[9];
int j = 0;
for (int i = 0; i < n - 1; i++) {
if (ch[i] >= '0' && ch[i] <= '9') {
a[j++] = ch[i] - '0';
}
}
int sum = 0;
for(int i = 0; i < 9; i++) {
sum += a[i] * (i + 1);
}
int rear = ch[n - 1] - '0';
if (sum % 11 == rear || (rear == 'X' - '0' && sum % 11 == 10)) {
cout << "Right" << endl;
}
else {
ch[n - 1] = sum % 11 + '0';
if(ch[n - 1] >= ('9' + 1)) {
ch[n - 1] = 'X';
}
cout << ch << endl;
}
return 0;
}