大佬求助50分

P1055 [NOIP2008 普及组] ISBN 号码

Chenlinjie7315 @ 2024-04-27 00:26:47

#include<iostream>
#include<string>
using namespace std;
int main(){
    string s;
    cin>>s;
    int l=s.length();
    int a=1,sum=0;
    for(int i=0;i<l-1;i++){
        if(i!=1&&i!=5&&i!=11){//字符转数字 
            sum+=a*(s[i]-'0');
            a++;
        }   
    }
    int b=sum%11;
    if(b==(s[l-1]-'0')){//字符转数字 
        cout<<"Right";
    }
    else{
        for(int i=0;i<l-1;i++){
            cout<<s[i];
        }
        cout<<b;
    }
    return 0;
}

by lan_xing_xing @ 2024-05-09 13:37:19

要加上最后一个是X的判断

#include<iostream>
#include<string>
using namespace std;
int main(){
    string s;
    cin>>s;
    int l=s.length();
    int a=1,sum=0;
    for(int i=0;i<l-1;i++){
        if(i!=1&&i!=5&&i!=11){
            sum+=a*(s[i]-'0');
            a++;
        }   
    }
    int b=sum%11;
    if(b==10)//判断X
        if(s[l-1]=='X')
            cout<<"Right";
        else{
            for(int i=0;i<l-1;i++)
                cout<<s[i];
            cout<<"X";
        }
    else
        if(b==(s[l-1]-'0')){
            cout<<"Right";
        }
        else{
            for(int i=0;i<l-1;i++)
                cout<<s[i];
            cout<<b;
        }
    return 0; 
}

|