答案没错啊

P1055 [NOIP2008 普及组] ISBN 号码

YSzita @ 2023-07-31 15:10:20

#include<bits/stdc++.h>
using namespace std;
int main(){
    char a[10],c=0;
    int b=1,d=0,e=0;
    while(1==1){
        if(b==11){
            break;
        }
        cin>>c;
        if(c>='0' && c<='9'){
            a[b]=c;
        }else if(c=='X'){
            a[b]==10;
        }else{
            continue;
        }
        b++;
    }
    for(int i=1;i<=9;i++){
        e+=i*(a[i]-48);
    }
    d=e%11;
    if(a[10]-48==d){
        cout<<"Right";
    }else{
        for(int i=1;i<=9;i++){
            cout<<a[i];
            if(i==1 || i==4 ||i==9){
                cout<<"-";
            }
        }
        if(d==10){
            cout<<"X";
        }else{
            cout<<d;
        }
    }
    return 0;
}

by Weizhuo_Zhao @ 2023-07-31 15:23:46

我的代码给你参考一下8...

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a[15] = {}, i1 = 0, z = 0;
    char b;
    for (int i = 1; i <= 12; i++) {
        cin >> b;
        if (b != '-') {
            a[i1] = b - '0';
            i1++;
        }
    }
    cin >> b;
    for (int i = 1; i <= 9; i++)
        z += a[i - 1] * i;
    if ((b != 'X' && z % 11 == b - '0') || (z % 11 == 10 && b == 'X' ))
        cout << "Right";
    else {
        cout << a[0] << '-' << a[1] << a[2] << a[3] << '-' << a[4] << a[5] << a[6] << a[7] << a[8] << '-' ;
        if (z % 11 == 10)
            cout << 'X';
        else
            cout << z % 11;
    }

    return 0;
}

|