1 条题解

  • 0
    @ 2023-6-11 12:20:59

    C :

    
    #include<stdio.h>
    
    int main()
    
    {
    
        char ch[100]={0};
    
        int sum,i;
    
        while(scanf("%s",ch)!=EOF)
    
        {
    
            i=0;
    
            sum=0;
    
            sum=sum+(ch[i]-'0');
    
            for(i=2;i<5;i++)
    
            {
    
                sum=sum+((ch[i]-'0')*i);
    
            }
    
            for(i=6;i<11;i++)
    
            {
    
                sum=sum+((ch[i]-'0')*(i-1));
    
            }
    
            sum=sum%11;
    
            if(sum==10)
    
            {
    
                if(ch[12]=='X')
    
                    printf("Right\n");
    
                else{
    
                        ch[12]='X';
    
                printf("%s\n",ch) ;
    
                 }
    
            }
    
           else if(sum==(ch[12]-'0'))
    
            printf("Right\n");
    
            else
    
            {
    
                ch[12]=(char)(sum+'0');
    
                printf("%s\n",ch);
    
     
    
            }
    
        }return 0;
    
    }
    

    C++ :

    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    char a[14],b[14],t1,t2;
    int t22=0;
    
    int main()
    {
    //    freopen("isbn.in","r",stdin);
    //    freopen("isbn.ans","w",stdout);
        scanf("%c-%c%c%c-%c%c%c%c%c-%c",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9],&t1);//暴力读入
    //注意,利用了scanf的特性,可以读入指定的字符,具体可以自己查找资料。因此读入的都是有用字符
        for(int i=1;i<=9;++i)
            t22+=(a[i]-'0')*i;//暴力地安题目要求把有用的自负处理求和
        t2=t22%11+'0';//求出末位的标准值
        if(t2=='0'+10)t2='X';//特殊处理
        if(t1==t2)//判断,如果符合,输出Right
        {
            cout<<"Right";
            return 0;
        }
        cout<<a[1]<<'-'<<a[2]<<a[3]<<a[4]<<'-'<<a[5]<<a[6]<<a[7]<<a[8]<<a[9]<<'-'<<t2;//暴力地输出
        return 0;//程序完美结束
    }
    
    • 1

    信息

    ID
    2673
    时间
    1000ms
    内存
    50MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者