//做这题的时候,最开始我是用字符串来做的,但是AC不了,然后再参照别人的代码用char来做,
//还是没有AC,搞了我大半天,原来是我没有将验证码为X的这种情况考虑进去!哎!
#include "iostream"
#include "string"
#include "sstream"
using namespace std;
int main()
{
string str;
while (cin >> str)
{
int num[11];//存储从字符串中得来的数字
for (int i = 0; i < 11; i++)
num[i] = -1;
int size = str.size();
for (int i = 0; i < 12; i++)
{
if (str[i] != '-')
num[i] = str[i] - '0';
}
int sum = 0;
for (int i = 0, j = 1; i < 11; i++)
{
if (num[i] != -1)
{
sum += num[i] * j;
j++;
}
}
int num1, num2;
num1 = sum % 11;
num2 = str[12] - '0';
if (num1 == num2 || (num1 == 10 && str[12] == 'X'))
cout << "Right" << endl;
else if (num1 == 10)
{
string str1 = "", temp = "X";
for (int i = 0; i < 12; i++)
str1 += str[i];
str1 += temp;
cout << str1 << endl;
}
else if (num1 != num2)
{
stringstream s;
string temp1, str2 = "";
s << num1;
s >> temp1;
for (int i = 0; i < 12; i++)
str2 += str[i];
str2 += temp1[0];
cout << str2 << endl;
}
}
}
//下面的代码我参照别人的代码写的
//#include "iostream"
//#include "cstring"
//using namespace std;
//
//int main()
//{
// char a[14];
// while (cin >> a)
// {
// int sum = 0;
// for (int i = 0, j = 1; i < 12; i++)
// if (a[i] != '-')
// {
// sum += ((a[i] - '0') * j);
// j++;
// }
// //cout << sum << endl;
// int num1 = sum % 11;
// int num2 = a[12]-'0';
// if (num1 == num2 || (num1 == 10 && a[12] == 'X'))
// cout << "Right" << endl;
// else
// {
// if (num1 == 10)
// {
// char ch = 'X';
// a[12] = ch;
// cout << a << endl;
// }
// else
// {
// char temp;
// temp = num1 + '0';
// a[12] = temp;
// cout << a << endl;
// }
// }
// }
//}
/*
0-670-82190-10
0-670-82107-11
0-670-82162-4
0-670-82190-9
0-670-82107-5
0-670-82190-X
*/
sicily 1761
最新推荐文章于 2017-12-20 22:06:30 发布