P1055 题解

这道题依旧是模拟,作为预备役垃圾第一次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\n", code);
    }

    return 0;
}

猜你喜欢

转载自www.cnblogs.com/kozumi/p/12903682.html