为什么样例过了,却全WA?

P1055 [NOIP2008 普及组] ISBN 号码

下饭之王 @ 2021-12-22 18:26:46

#include<bits/stdc++.h>
using namespace std;
int main(){
    char isbn[13];
    int i=0,c=1,num,a;
    cin>>isbn;
    for(;i<12;i++){
        if(isbn[i]!='-'){
            a=isbn[i]-48;
            a=a*c;
            num+=a;
        }
        else
            c--;
        c++;
    }
    num=num%11;
    a=isbn[12]-48;
    if(num==a)
        cout<<"Right";
    else{
        if(num==10)
            isbn[12]='X';
        else
            isbn[12]=num+48;
        for(i=0;i<13;i++)
            cout<<isbn[i];
    }
    return 0;
}

by MatrixGroup @ 2021-12-22 18:30:40

@下饭之王


by 下饭之王 @ 2021-12-22 18:31:33

@bilibilitdasc 谢谢


by 沉石鱼惊旋 @ 2021-12-22 18:34:11

@下饭之王

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

    return 0;
}

|