3 条题解

  • 0
    @ 2025-2-6 19:50:13

    ISBN号码

    题目大意:

    给你一个字符串,把除最后一位识别码的其他数字分别乘以1,2...9的和加起来对11取余,如果余数为10,那么识别码为X,如果等于最后一位,就输出Right, 如果不等于,就输出正确的字符串

    模拟即可(细节看代码注释)

    用枚举除了最后一位数字之外的数字和,然后模掉 11,最后特判一下最后一位是 10 的情况,就好了

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int a,b,c,d,e,f,g,h,i,s1,s2;
    	char j;
        scanf("%1d-%1d%1d%1d-%1d%1d%1d%1d%1d-%c",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);
        s1=(a*1+b*2+c*3+d*4+e*5+f*6+g*7+h*8+i*9)%11;
        if(j=='X')
    		s2=10;
        else
    		s2=j-'0';
    		
        if(s1==s2)
        cout<<"Right";
        else if(s1==10)
        cout<<a<<"-"<<b<<c<<d<<"-"<<e<<f<<g<<h<<i<<"-X";
        else
        cout<<a<<"-"<<b<<c<<d<<"-"<<e<<f<<g<<h<<i<<"-"<<s1;
    	return 0;
    }
    

    最后求个赞qwq

    • -2
      @ 2024-12-5 20:13:43

      #include<bits/stdc++.h> using namespace std; string a; int b[9]={0, 2, 3, 4, 6, 7, 8, 9, 10},s = 0; char x; int main(){ cin >> a; for(int i = 0;i < 9;i++) s += (a[b[i]] - '0') * (i + 1); s %= 11; if(s == 10) x='X'; else x = s+'0'; if(x == a[12]) cout << "Right"; else { for(int i = 0;i < 12;i++) cout << a[i]; cout << x; } return 0; }

      • -2
        @ 2024-11-10 10:00:37

        AC+CE=

        #include<bits/stdc++.h>
        #define int unsigned long long
        #define INF 0x3f3f3f
        using namespace std;
        char c[11];
        int a[11];
        char c_;
        int ans;
        void print()
        {
        	cout<<a[1]<<"-";
        	for(int i=2;i<=4;i++)cout<<a[i];
        	cout<<"-";
        	for(int i=5;i<=9;i++)cout<<a[i];
        	cout<<"-";
        	if(ans!=10)cout<<ans;
        	else cout<<"X";
        }
        signed main()
        {
        	scanf("%c-%c%c%c-%c%c%c%c%c-%c",c+1,c+2,c+3,c+4,c+5,c+6,c+7,c+8,c+9,&c_);
        	for(int i=1;i<=9;i++)
        		a[i]=c[i]-48;
        	for(int i=1;i<=9;i++)
        		ans=(ans+a[i]*i)%11;
        	if(c_=='X'){
        		if(ans==10)cout<<"Right";
        		else print();
        	}
        	else{
        		if(ans==c_-'0')cout<<"Right";
        		else print();
        	}
            return 0;
        }
        
        • 1

        信息

        ID
        5113
        时间
        1000ms
        内存
        128MiB
        难度
        2
        标签
        递交数
        380
        已通过
        147
        上传者