题目:

ISBN号码

题目解析

看注释

代码

#include <bits/stdc++.h>
using namespace std;

int main() {
	long long sum = 0; // 不开long long见祖宗(((
	string s; // 读入ISBN号码
	int cnt = 1; // 由于是1乘到9,所以要个计数器
	cin >> s; // 由于格式为x-xxx-xxxxx-x没有空格直接写cin就行
	for (int i = 0; i <= 10; i++) { // 不算最后校验码!!!
		if (isdigit(s[i])) { // 如果为数字
			sum += (s[i] - '0') * cnt; // 减去'0'乘上计数器
			cnt++; // 增加
		}
	}
	if ((sum % 11) == s[12] - '0' || ((sum % 11 == 10) && s[12] == 'X')) { // 如果符合标准
		cout << "Right" << endl;
	} else { // 否则修改(((
		for (int i = 0; i < 12; i++) {
			cout << s[i];
		}
		if (sum % 11 == 10) {
			cout << "X" << endl;
		} else {
			cout << sum % 11 << endl;
		}
	}
	return 0;
}