题解:P1055 [NOIP2008 普及组] ISBN 号码

· · 题解

solution

小模拟。

我们按照题意算出给定字符串正确的识别码,再和给定的识别码比较,若不相等则把给定识别码改为正确识别码,注意特判识别码为 10 的情况。

通过记录。

code

#include<bits/stdc++.h>
using namespace std;
int l, n, sum; 
string s;
int main(){
    cin >> s;
    l=s.size();
    for (int i=0; i<l-1; ++i)
        if (s[i]>='0'&&s[i]<='9')
            sum+=(s[i]-'0')*(++n);
    if (sum%11+'0'==s[l-1]||(sum%11==10&&s[l-1]=='X'))
        puts("Right");
    else
        s[l-1]=(sum%11==10?'X':sum%11+'0'),
        cout << s;
    return 0;
}