1 条题解

  • 0
    @ 2025-10-17 0:19:00

    c

    const int M=11;
    
    void eachT() {
        int res=0,cnt=1;
        char s[20];
        scanf("%s",s);
        int len=strlen(s);
        for(int i=0;i<len-1;++i) if(s[i]!='-') res+=(s[i]-'0')*cnt++;
        res%=11;
    
        char last=s[len-1]; //最后一位
        if(res==(last=='X'?10:last-'0')) printf("Right\n");
        else {
            //输出非最后一位的部分
            for(int i=0;i<len-1;++i) printf("%c",s[i]);
            //输出正确的校验码
            printf("%c\n",(res==10?'X':'0'+res));
        }
    }
    

    cpp

    const int M=11;
    
    void eachT() {
        int cnt=1,res=0;
        string s;
        getline(cin,s);
        for(int i=0;i<s.size()-1;++i) if(s[i]!='-') res+=(s[i]-'0')*cnt++;
        res%=11;
    
        char last=s[s.size()-1]; //最后一位
        if(res==(last=='X'?10:last-'0')) cout<<"Right"<<endl;
        else {
            //输出非最后一位的部分
            for(int i=0;i<s.size()-1;++i) cout<<s[i];
            //输出正确的校验码
            cout<<(res==10?'X':res)<<endl;
        }
    }
    

    信息

    ID
    161
    时间
    1000ms
    内存
    16MiB
    难度
    9
    标签
    递交数
    31
    已通过
    3
    上传者