#include <iostream>
#include <string>
using namespace std;
int StrNum = 0;
int JudgeAll = 0;
int QUAN[17]{ 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 };
char Right[11]{ '1','0','X','9','8','7','6','5','4','3','2' };
bool IsNum(string&);
bool Get_Num(string&);
int main()
{
cin >> StrNum; cin.ignore();
string* str = new string[StrNum];
for (size_t i = 0; i < StrNum; i++)
{
cin >> str[i];
if (IsNum(str[i]) /* 能转换为数字的字符串 */)
{
if (Get_Num(str[i])/*最后一位满足要求*/)
{
continue;
}
else //最后一位不满足要求 输出即可
{
JudgeAll += 1;
cout << str[i] << endl;
}
}
else //不能转换的字符串 直接输出即可
{
JudgeAll += 1;
cout << str[i] << endl;
}
}
if(!JudgeAll)
{
cout << "All passed" << endl;
}
delete[]str;
str = nullptr;
return 0;
}
bool IsNum(string& str)
{
for (size_t i = 0; i < str.length() - 1; ++i)
{
if (isdigit(str[i]))
{
continue;
}
else
{
return false;
}
}
return true;
}
bool Get_Num(string& str)
{
int sum = 0;
for (size_t i = 0; i < 17; i++)
{
sum += (str[i] - '0') * QUAN[i];
}
if (Right[sum % 11] != str[17])
{
return false;
}
return true;
}
08-31
464
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)