这个为什么只有50分

P1055 [NOIP2008 普及组] ISBN 号码

Lilindong @ 2024-07-28 20:06:02

#include<stdio.h>
#include<math.h>
int main()
{
    char a[14],mod[12]="0123456789x";
    int i,j=1,sum=0;
    scanf("%s",a);
    for(i=0;i<12;i++)
    {
        if(a[i]=='-')
        continue;
        sum+=(a[i]-48)*j++;
    }
    if(mod[sum%11]==a[12])
    printf("Right");
    else
    {
        a[12]=mod[sum%11];
        printf("%s",a);
    }
    return 0;
}

by zml1029 @ 2024-07-29 10:41:48

给你看看我的代码```

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

|