http://www.acmicpc.sdnu.edu.cn/problem/show/1120
http://codevs.cn/problem/1146/
ISBN码的检测,按照题目规则写就好,但是貌似“-”号的位置不是一定的。用了一些STL,加强理解。
PS:发现自己的状态不是很好啊,简单的一看就会,也没做的必要做,难的题,自己看一会就看不下去。
#include<iostream>
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<stack>
#include<string>
using namespace std;
int main()
{
string a;
cin >> a;
int sum = 0;
int j = 1;
for (int i = 0; i < a.size()-1; i++)
{
if (a.at(i)=='-')
{
continue;
}else
{
sum = sum + j*(a.at(i) - '0');
j++;
sum = sum % 11;
}
}
int flag = 0;
if (sum==10)
{
if (a.at(12)=='X')
{
flag = 1;
}
}
else if (sum==(a.at(12)-'0'))
{
flag = 1;
}
if (flag)
{
cout << "Right" << endl;
}
else
{
for (int i = 0; i < a.size()-1; i++)
{
cout << a.at(i);
}
if (sum==10)
{
cout << "X" << endl;
}else
{
cout << sum << endl;
}
}
system("pause");
return 0;
}