sicily 1761

//做这题的时候,最开始我是用字符串来做的,但是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
*/

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值