使用c++字符串容器,直接将输入存到字符串容器后,通过前9位数据求sum,但求的时候要注意因为字符串容器中的数据是字符变量因此要减去’0’;之后直接sum%11,结果直接给到char c,若c等于10,那就将c赋值为X否则c=c+’0’;然后将字符串最后一位与c比较,若相同则输出Right,若不同直接将c给最后一个元素。
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
cin>>s;
int i,j=1;
int sum=0;
for(i=0;i<(int)s.length()-1;i++){
if(s[i]!='-'){
sum=sum+(s[i]-'0')*j;
j++;
}
}
char c;
c=sum%11;
if(c==10){
c='X';
}else{
c=c+'0';
}
if(s[s.length()-1]==c){
cout<<"Right";
}else{
s[s.length()-1]=c;
cout<<s;
}
return 0;
}