求大佬帮忙,为什么是80分,哪错了?

P1055 [NOIP2008 普及组] ISBN 号码

新时代卷王 @ 2021-08-26 22:26:05

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int sum=0;
    int r;
    int j=0;
    char c[12];
    for(int i=0;i<12;i++)
    {
        if((c[i]=getchar())=='-')
        continue;
        else
        j++;
        sum+=(int(c[i])-48)*j;
    }
    r=int(getchar())-48;
    if(r==(sum%11))
    cout<<"Right";
    else
    {
        for(int k=0;k<12;k++)
        {
        cout<<c[k];
        }
        if(sum%11<10)
        cout<<sum%11;
        else cout<<"X";
    }

    return 0;
}

by qwq___qaq @ 2021-08-26 23:11:21

@新时代卷王 r如果是X要变成10

亲测AC

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int sum=0;
    int r;
    int j=0;
    char c[12];
    for(int i=0;i<12;i++)
    {
        if((c[i]=getchar())=='-')
        continue;
        else
        j++;
        sum+=(int(c[i])-48)*j;
    }
    char w=getchar();
    if(w=='X')
        r=10;
    else
        r=w-'0';
    if(r==(sum%11))
    cout<<"Right";
    else
    {
        for(int k=0;k<12;k++)
        {
        cout<<c[k];
        }
        if(sum%11<10)
        cout<<sum%11;
        else cout<<"X";
    }

    return 0;
}

by 新时代卷王 @ 2021-08-27 08:41:16

哦哦,感谢


|