AcWing 3193. ISBN号码
原题链接
简单
C++ 代码
#include <bits/stdc++.h>
using namespace std;
const int N = 10;
int num[N];
int main()
{
char ch;
scanf("%d-%01d%01d%01d-%01d%01d%01d%01d%01d-%c", num, num+1, num+2, num+3, num+4, num+5, num+6, num+7, num+8, &ch); //读取内容,多个数字连接在一起就控制读入长度,识别码以char型读入
int res = 0;
for(int i = 0; i < 9; i++) res += num[i] * (i + 1); //计算识别码
if(res % 11 == ch - '0' || (res % 11 == 10 && ch == 'X')) printf("Right"); //验证识别码
else
{
if(res % 11 == 10) ch = 'X';
else ch = '0' + res % 11; //如果识别码错误,则修正识别码
printf("%d-%d%d%d-%d%d%d%d%d-%c", num[0], num[1], num[2], num[3], num[4], num[5], num[6], num[7], num[8], ch);
}
return 0;
}