该题比较简单,根据题意正确理解后即可写出代码,需要强调注意的是当识别码为X的时候的输出
#include<iostream>
#include<string>
using namespace std;
int main(){
string str;
cin>>str;
string s=str.substr(0,12);//取出除了识别码之外的子串
int lens=s.length(),count=1,sum=0;
for(int i=0;i<lens;i++){
if(s[i]!='-'){
sum=sum+count*(s[i]-'0');//叠加计算
count++;
}
}
sum%=11;//得到正确识别码
if((str[12]-'0'==sum)||(str[12]=='X'&&sum==10)){//识别正确
cout<<"Right"<<endl;//注意这里需要特判识别码为X的时候
}else{//识别码错误
char ch='X';
cout<<s;
if(sum!=10){
cout<<sum<<endl;
}else{
cout<<ch<<endl;
}
}
return 0;
}