80求助大佬们

P1055 [NOIP2008 普及组] ISBN 号码

AzureMist @ 2022-05-01 20:08:14

#include<bits/stdc++.h>
using namespace std;
int main()
{
    char a[13],b[13];
    for(int i=0;i<=12;i++) {cin>>a[i];b[i]=a[i];b[i]-='0';}
    int s;
    s=b[0]*1+b[2]*2+b[3]*3+b[4]*4+b[6]*5+b[7]*6+b[8]*7+b[9]*8+b[10]*9;
    if(s%11==b[12]) cout<<"Right";
    else
    {
        for(int i=0;i<=11;i++)
            cout<<a[i];
        if(s%11!=10) cout<<(s%11);
        else cout<<"X";
    }
    return 0;
}

by metaphysis @ 2022-05-02 14:14:35

@Volcano_j666

没有考虑到有些正确的号码最末一位是 X 的情形,您的代码:

if(s%11==b[12]) cout<<"Right";

无法正确判断。


by Fenestro @ 2022-05-14 19:00:59

@Volcano_j666 输入的时候也要特判X


|