简单的题解
2023-09-16 22:18:37
发布于:浙江
6阅读
0回复
0点赞
这真的AC,思路比较简单
只要算出总和的模再进行校验码确认就可以了
#include <iostream>
#include <string>
using namespace std;
int main()
{
//变量定义
string isbn; //ISBN号码
int mod = 0; //总和模11的结果
int cnt = 1; //数字数量
//输入
cin >> isbn;
int len = isbn.length();
//解析
for (int i=0; i<len-2; i++) //不统计最后的校验码
{
if (isbn[i]>='0' && isbn[i]<='9') //必须为数字
mod += int(isbn[i]-'0')*cnt++; //转化为数字后再一一相加
}
//计算
mod %= 11; //取模
char ch;
if (mod == 10) //比较校验码大小,确定ch的值
ch = 'X';
else
ch = char(mod+'0');
if (ch == isbn[len-1]) //校验码是否正确
cout << "Right";
else
{
isbn[len-1] = ch; //更正校验码
cout << isbn;
}
return 0;
}
请勿抄袭题解!
请勿抄袭题解!!
请勿抄袭题解!!!
全部评论 1
那你为什么要发题解?
2024-01-24 来自 广东
0
有帮助,赞一个