#include<stdio.h>
#include
using namespace std;
int main(){
char a[15];
int j,k;
cin>>a;
j=(a[0]-48)*1+(a[2]-48)*2+(a[3]-48)*3+(a[4]-48)*4+(a[6]-48)*5+(a[7]-48)*6+(a[8]-48)*7+(a[9]-48)*8+(a[10]-48)*9;
k=j%11;
if(k==10)
{
if(a[12]=='X')
cout<<"Right";
else
{
a[12]=‘X’;
cout<<a;
}
}
else {
if(k==a[12]-48)
cout<<"Right";
else
{
a[12]=k+48;
cout<<a;
}
}
return 0;
}
本文深入探讨了ISBN校验码的生成与验证算法,通过具体的C++代码示例,详细解释了如何根据ISBN前12位计算第13位校验码的过程。包括对输入字符串的数字字符进行特定权重相乘并求和,然后取模11得到校验值,最后对比计算出的校验值与ISBN实际校验码是否一致。

被折叠的 条评论
为什么被折叠?



