CCSP 201312-2 ISBN号码

代码

#include <iostream>
#include <string.h>
using namespace std;

int main() {
    int num = -1;
    int w=-1;
    char ISBN[14];
    cin>>ISBN;
    num = (ISBN[0]-48)*1+(ISBN[2]-48)*2+(ISBN[3]-48)*3+(ISBN[4]-48)*4+(ISBN[6]-48)*5+(ISBN[7]-48)*6+(ISBN[8]-48)*7+(ISBN[9]-48)*8+(ISBN[10]-48)*9;
    num = num%11;
    if(num==10)
    {
        if(ISBN[12]=='X')
            w=1;
        else
        {
            w=0;
            ISBN[12]='X';
        }
    }
    else
    {
        if(num==ISBN[12]-48)
            w=1;
        else
        {
            w=0;
            ISBN[12] = num+48;
        }
    }
    if(w==1)
        cout<<"Right"<<endl;
    else
        cout<<ISBN<<endl;
    return 0;
}

知识点

1. ASCII码48是0,65是A,97是a,⚠️ASCII和数字的转换要减48

原文地址:https://www.cnblogs.com/QRain/p/11880367.html