zyabc @ 2022-05-08 22:43:48
#include<bits/stdc++.h>
using namespace std;
int main()
{
char isbn[13];
cin>>isbn;
int num[10],result=0;
num[0]=isbn[0]-'0';
num[1]=isbn[2]-'0';
num[2]=isbn[3]-'0';
num[3]=isbn[4]-'0';
num[4]=isbn[6]-'0';
num[5]=isbn[7]-'0';
num[6]=isbn[8]-'0';
num[7]=isbn[9]-'0';
num[8]=isbn[10]-'0';
num[9]=isbn[12]-'0';
for(int i=0;i<9;i++)
{
result+=num[i]*(i+1);
}
result=result%11;
if(result<=9) {
if(result==num[9]) cout<<"Right";
else
{
isbn[12]=result+'0';
cout<<isbn;
}
}
else
{
if(isbn[12]=='X') cout<<"Right";
else
{
isbn[12]='X';
cout<<isbn;
}
}
return 0;
}
by 8atemak1r @ 2022-05-08 22:48:15
@zyabc 显然不能把所有的字符都统计进去
by zyabc @ 2022-05-08 23:11:56
@8atemak1r 我只统计了9位数字,分隔符跳过了
by 8atemak1r @ 2022-05-09 00:14:32
@zyabc 数组开大
by zyabc @ 2022-05-09 08:20:48
@8atemak1r 果然,我isbn数组调大就全部通过了。。