下饭之王 @ 2021-12-22 18:26:46
#include<bits/stdc++.h>
using namespace std;
int main(){
char isbn[13];
int i=0,c=1,num,a;
cin>>isbn;
for(;i<12;i++){
if(isbn[i]!='-'){
a=isbn[i]-48;
a=a*c;
num+=a;
}
else
c--;
c++;
}
num=num%11;
a=isbn[12]-48;
if(num==a)
cout<<"Right";
else{
if(num==10)
isbn[12]='X';
else
isbn[12]=num+48;
for(i=0;i<13;i++)
cout<<isbn[i];
}
return 0;
}
by MatrixGroup @ 2021-12-22 18:30:40
@下饭之王
'\0'
留位置isbn[12]=='X'
时有问题by 下饭之王 @ 2021-12-22 18:31:33
@bilibilitdasc 谢谢
by 沉石鱼惊旋 @ 2021-12-22 18:34:11
@下饭之王
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
if((a[0]-48+(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)%11==10)
{
if(a[12]=='X')
{
cout<<"Right";
return 0;
}
}
else
{
if((a[0]-48+(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)%11==a[12]-48)
{
cout<<"Right";
return 0;
}
}
for(int i=0;i<a.size()-1;i++)
{
cout<<a[i];
}
if((a[0]-48+(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)%11==10)
{
cout<<"X";
}
else
{
cout<<(a[0]-48+(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)%11;
}
return 0;
}