40分求调,玄关

P1055 [NOIP2008 普及组] ISBN 号码

114homo @ 2024-10-25 20:23:47

#include<bits/stdc++.h>  
using namespace std;  
int main()
{

    string a;
    int b=1,s1=0,q1=0;
    cin>>a;
    for(int i=0;i<=11;i++){
        if(a[i]!='-'){
            s1=s1+(a[i]-'0')*b;
            b++;
        }
    }
    q1=s1%11;
    if(q1==a[12]-'0')
        cout<<"RIGHT";
    else if(q1==10&&a[b-1]=='X')
        cout<<"RIGHT";
    else{
        for(int i=0;i<a.size()-1;i++){
            cout<<a[i];
        }
        cout<<q1;
    }   
    return 0;
}

by DYF2765491381672943 @ 2024-10-25 20:37:34

几个问题

1."Right"误写为"RIGHT"

2.17行的a[b-1]应该为a[12]

3.输出q1时应当特判q1等于10的情况

#include<bits/stdc++.h>  
using namespace std;  
int main()
{
    string a;
    int b=1,s1=0,q1=0;
    cin>>a;
    for(int i=0;i<=11;i++){
        if(a[i]!='-'){
            s1=s1+(a[i]-'0')*b;
            b++;
        }
    }
    q1=s1%11;
    if(q1==a[12]-'0')
        cout<<"Right";
    else if(q1==10&&a[12]=='X')
        cout<<"Right";
    else{
        for(int i=0;i<a.size()-1;i++){
            cout<<a[i];
        }
        if(q1!=10)cout<<q1;
        else cout<<"X";
    }   
    return 0;
}

求个关注,谢谢


by 114homo @ 2024-10-25 21:03:29

@DYF2765491381672943 谢谢,已关orz


|