PAT乙级1031:查验身份证

在这里插入图片描述
在这里插入图片描述

#include <iostream>
#include <string>

using namespace std;


int main() 
{
	int N = 0, sum = 0;
	cin >> N; 
	int k = N;
	string s,num,end;
	int a = 0;

	while (N--)
	{
		cin >> s;
		end = s[17];
		sum = ((s[0] - '0') * 7 + (s[1] - '0') * 9 + (s[2] - '0') * 10 + (s[3] - '0') * 5 + (s[4] - '0') * 8 + (s[5] - '0') * 4 + (s[6] - '0') * 2 + (s[7] - '0') * 1 + (s[8] - '0') * 6 + (s[9] - '0') * 3 + (s[10] - '0') * 7 + (s[11] - '0') * 9 + (s[12] - '0') * 10 + (s[13] - '0') * 5 + (s[14] - '0') * 8 + (s[15] - '0') * 4 + (s[16] - '0') * 2) % 11;

		if (sum == 0)
		{
			num = '1';
		}
		else if (sum == 1)
		{
			num = '0';
		}
		else if (sum == 2)
		{
			num = 'X';
		}
		else if (sum == 3)
		{
			num = '9';
		}
		else if (sum == 4)
		{
			num = '8';
		}
		else if (sum == 5)
		{
			num = '7';
		}
		else if (sum == 6)
		{
			num = '6';
		}
		else if (sum == 7)
		{
			num = '5';
		}
		else if (sum == 8)
		{
			num = '4';
		}
		else if (sum == 9)
		{
			num = '3';
		}
		else if (sum == 10)
		{
			num = '2';
		}

		if (end==num)
		{
			a++;
		}
		else
		{
			cout << s << endl;
		}
	}
	//判断是否全对
	if (a==k)
	{
		cout << "All passed" << endl;
	}

	return 0;
}

原创文章 85 获赞 86 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43699840/article/details/105647244
今日推荐