/* 题目意思是输入每个ISBN码的前11位,根据
权重乘每个数位的和与11的倍数还差多少确定最后一位 */
#include<iostream>
#include<string>
using namespace std;
int main() {
string s;
// 以EOF结束输入
while(cin>> s) {
int sum= 0;
int l= s.size();
int weight= 10;
for (int i= 0; i< l; i++) {
if (s[i]!= '-') {
int num= s[i]- '0';
sum+= weight* num;
weight--;
}
}
int check;
// 值得注意的是sum%11== 0的情况
if (sum% 11== 0) {
check= 0;
} else {
check= 11- (sum% 11);
}
if (check== 10) {
cout<< s<< "-X";
} else {
cout<< s<< "-"<< check;
}
cout<< endl;
}
}
1000. ISBN
最新推荐文章于 2025-06-30 10:30:00 发布