
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int a[9];
int k=0,sum=0;
cin >> str;
for(int i=0;i<11;i++)//只检查前11位即可
{
if(str[i]!='-')
{
a[k++]=str[i]-'0';
}
}
for(int i=0;i<9;i++)
{
sum+=a[i]*(i+1);
}
int num=sum%11;
if((num==(str[12]-'0'))||(num==10&&str[12]=='X'))
cout << "Right" << endl;
else
{
if(num==10)
{
str[12]='X';
}
else
{
str[12]=num+'0';
}
cout << str << endl;
}
return 0;
}
注意:1、字符转数字:num=str[12]-‘0’;
数字转字符:str[12]=num+‘0’;
2、注意审题:num10&&str[12]'X’是正确情况
3、注意字符串的使用,可以像使用数组下标一样使用它。
二刷:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin,str);
int yu=str[0]-'0'+(str[2]-'0')*2+(str[3]-'0')*3+(str[4]-'0')*4+(str[6]-'0')*5+(str[7]-'0')*6+(str[8]-'0')*7+(str[9]-'0')*8+(str[10]-'0')*9;
if(yu%11==10)
{
if(str[12]=='X') cout << "Right" << endl;
else
{
str[12]='X';
cout << str << endl;
}
}
else if(yu%11==str[12]-'0')
cout << "Right" << endl;
else
{
str[12]=yu%11+'0';
cout << str << endl;
}
return 0;
}
博客主要介绍了字符与数字转换的方法,如字符转数字 num=str[12]-‘0’,数字转字符 str[12]=num+‘0’。还提醒要注意审题,明确正确情况,以及字符串可像数组下标一样使用。

被折叠的 条评论
为什么被折叠?



