作者:HLJU_23_庞轩

  1. 遍历ISBN码 —— 通过取范围'0'到'9'之间,得到九个int型数字(ch[i)- '0')
  2. 按题目所说得到累加值sum
  3. 判断 —— 判断条件有两个
    1. 首先是一般条件 对sum取模11与识别码比较
    2. 其次是特殊条件 如果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;

}