1 条题解

  • 2
    @ 2023-7-11 9:41:43

    这么简单的水题,不会还有人错了吧

    实不相瞒,第一次提交只有70ptsQWQ,少考虑了一种情况。

    废话少说,看题

    题目传送门

    这道题首先要求输入一个字符串,即要用到 string或者 char数组,这里用 string

    在遍历出识别码以外的数字时,单独定义一个因数指针,在每次与指针相乘时,就加一。最后判断该识别码是否合理即可。

    敲黑板 最后还原时千万要记得特判!!

    如果余数为10,则识别码为大写字母X

    AC Code

    #include<iostream>
    using namespace std;
    int sum;
    string s;
    int main(){
    	cin>>s;
    	for(int i=0,j=1;i<s.size()-1;i++)
    		if(s[i]!='-'){
    			sum+=(s[i]-'0')*j;
    			j++;//指针
    		}
    	sum%=11;
    	if(sum==10&&s[s.size()-1]=='X')cout<<"Right";
    	else if(s[s.size()-1]-'0'==sum)cout<<"Right";
    	else {
    		for(int i=0;i<s.size()-1;i++)
    			cout<<s[i];
    		if(sum==10)cout<<'X';//特判在此
    		else cout<<sum;
    	}
    	return 0;//华丽结束
    }
    

    信息

    ID
    155
    时间
    1000ms
    内存
    50MiB
    难度
    10
    标签
    递交数
    3
    已通过
    2
    上传者