80分蒟蒻求助

P1055 [NOIP2008 普及组] ISBN 号码

luogufather @ 2022-07-26 07:46:16

#include<bits/stdc++.h>
#define ull unsigned long long
using namespace std;
string n,m;
ull a,b,c,d,e,f,g,h,i,x,y;
int main()
{
    cin>>n;
    a=n[0]-48;b=n[2]-48;
    c=n[3]-48;d=n[4]-48;
    e=n[6]-48;f=n[7]-48;
    g=n[8]-48;h=n[9]-48;
    i=n[10]-48;
    x=n[12]-48;
    y=a*1+b*2+c*3+d*4+e*5+f*6+g*7+h*8+i*9;
    if(y%11==x) cout<<"Right";
    else 
    {
        if(y%11==10)
        cout<<a<<'-'<<b<<c<<d<<'-'<<e<<f<<g<<h<<i<<'-'<<'X';
        if(y%11<10)
        cout<<a<<'-'<<b<<c<<d<<'-'<<e<<f<<g<<h<<i<<'-'<<y%11;
    }
    return 0;
}
/*
1-010-00100-6*/

80分,不知道哪里出错了


by jiangxiaohai @ 2022-07-26 08:02:15

hake数据

输入:

2-232-33323-X

输出:

Right

你的输出2-232-33323-X

问题出在第十四行x取值,要分最后一位为数字和最后一位为X两种情况讨论,最后一位是X的时候就不能直接拿 最后的字符-48 给x赋值


by luogufather @ 2022-07-26 08:33:33

@jiangxiaohai AC了,谢谢大佬


by LeTu_Jun @ 2022-07-26 08:36:35

用户名好评


by luogufather @ 2022-08-18 20:40:08

@LeTu_Jun [doge]


|