求助大佬,为什么只有30分。

P1055 [NOIP2008 普及组] ISBN 号码

已注销#n8Hw26A @ 2021-07-05 22:46:34

#include<bits/stdc++.h>
using namespace std;
int main() {
    char a[10000];
    cin>>a;
    int l=strlen(a),sum;
    for(int i=0;i<=l-1;i++)
    {
        for(int j=1;j<=l-2;j++)
        {   
           if(a[i]=='-')
           {
                j=j-1; 
           }
           sum=a[i]*j;
           a[12]=a[12]-'0';
           if(a[12]!=sum%11)
           {
                a[12]=sum%11;
                a[12]=a[12]+'0';
                for(int i=0;i<=l-1;i++)
                {
                  cout<<a[i];
                }
                return 0;
           }
           else if(sum%11<=9&&a[12]==sum%11)
           {
                cout<<"Right";
                return 0;
           }
           else if((a[12]+'0')=='X'&&sum%11==10)
           {
                cout<<"Right";
                return 0;
           }
        }
    }
    return 0;
}

by 俞苏轩Shine @ 2021-07-05 22:57:48

#include<iostream>
#include<cstdio>
#include<cstring>//C和C++所有字符串函数
using namespace std;
int main(){
    string str;
    cin>>str;
    int sum=0,t=1;
    for(int i=0;i<11;i++){
        if(str[i]!='-'){
            sum+=(str[i]-48)*t;
            t++;
        }
    } 
    int m=sum%11;
    char x;
    if(m==10){
        x='X';
    }else{
        x=m+48;
    }
    if(x==str[12]){
        printf("Right");
    }else{
        str[12]=x;
        cout<<str;
    }
    return 0;
} 

by 已注销#n8Hw26A @ 2021-07-06 09:09:56

@俞苏轩Shine 谢谢大佬。


|