50分求助

P1055 [NOIP2008 普及组] ISBN 号码

klzllll @ 2024-12-09 23:23:05

#include <stdio.h>
int main()
{
    int a[10],s;
    char d,b,c;
    scanf("%1d%c%1d%1d%1d%c%1d%1d%1d%1d%1d%c%1d",&a[0],&d,&a[1],&a[2],&a[3],&b,&a[4],&a[5],&a[6],&a[7],&a[8],&c,&a[9]);
    s=a[0]*1+a[1]*2+a[2]*3+a[3]*4+a[4]*5+a[5]*6+a[6]*7+a[7]*8+a[8]*9;
    s=s%11;
    if(a[9]==s) printf("Right");
    else printf("%d%c%d%d%d%c%d%d%d%d%d%c%d",a[0],d,a[1],a[2],a[3],b,a[4],a[5],a[6],a[7],a[8],c,s);

    return 0;
}

by klzllll @ 2024-12-10 00:03:56

#include <stdio.h>
int main()
{
    int a[9];
    long long s;
    char d,b,c,e;
    scanf("%1d%c%1d%1d%1d%c%1d%1d%1d%1d%1d%c%c",&a[0],&d,&a[1],&a[2],&a[3],&b,&a[4],&a[5],&a[6],&a[7],&a[8],&c,&e);
    s=a[0]*1+a[1]*2+a[2]*3+a[3]*4+a[4]*5+a[5]*6+a[6]*7+a[7]*8+a[8]*9;
    s=s%11;
    if(a[9]==s||(s==10&&e=='X')) printf("Right");
    else if(s==10)
    {
        e='X';
        printf("%d%c%d%d%d%c%d%d%d%d%d%c%c",a[0],d,a[1],a[2],a[3],b,a[4],a[5],a[6],a[7],a[8],c,e);
    }
    else 
        printf("%d%c%d%d%d%c%d%d%d%d%d%c%d",a[0],d,a[1],a[2],a[3],b,a[4],a[5],a[6],a[7],a[8],c,s);

    return 0;
}

by klzllll @ 2024-12-10 00:04:26

现在90了求改


by markeoeitwupp @ 2024-12-10 09:51:40

不应该是 a[9]

应该是 e-'0'

a[9]不存在


by Dianna @ 2025-01-10 13:51:54

看我的:

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

|