80分求调

P1055 [NOIP2008 普及组] ISBN 号码

weidadingli @ 2024-10-20 19:52:05

为啥只有80分啊?

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

by weidadingli @ 2024-10-20 20:01:24

修正必关


by Kalyer @ 2024-10-20 20:25:48

识别码为X的时候,a == b没法判断吧。 嫌麻烦的话可以单独拉一个if语句讨论一下 if(a == 10){ }


|