这道题依旧是模拟,作为预备役垃圾第一次ac的橙题,还是很有纪念意义的:-D,希望不要没搞到省一就AFO……
说回题目,思路很清晰,就是乘一下再取模。
代码如下(C++):
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
char isbn_in[13];
cin >> isbn_in;
int result = 0;
int index = 1;
for (int i = 0; i < 11; i++) {
if(isbn_in[i] == '-') {
continue;
}
result += (isbn_in[i] - '0') * index;
index++;
}
char code = (result % 11 == 10) ? 'X' : result % 11 + '0';
if(isbn_in[12] == code) {
cout << "Right" << endl;
} else {
for(int i = 0; i < 12; i++)
printf("%c", isbn_in[i]);
printf("%c
", code);
}
return 0;
}