Simon_Lu @ 2021-11-05 18:35:38
#include<bits/stdc++.h>
using namespace std;
string s;
int ISBN;//识别码
int len;
void init(int n){
for(int i=n;i<len;i++)
s[i]=s[i+1];
len--;
}
int main(){
getline(cin,s);
len=s.size();
string tmp=s;
int len2=tmp.size();
for(int i=0;i<len;i++)
if(s[i]=='-')
init(i);
for(int i=0;i<len-1;i++){
ISBN+=(s[i]-'0')*(i+1);
ISBN%=11;
}
if((ISBN<=9&&int(s[len-1]-'0')==ISBN)||(ISBN==10&&s[len-1]=='X'))
cout<<"Right";
else{
for(int i=0;i<len2-1;i++)
cout<<tmp[i];
if(ISBN==10)
cout<<"X";
else
cout<<ISBN;
}
return 0;
}
by _SeeleVollerei_ @ 2021-11-05 18:38:51
@Simon_Lu 试着在洛谷IDE运行一下
by MatrixGroup @ 2021-11-05 18:45:13
@Simon_Lu
s[i]=s[i+1];
不管别的,越界了。
by Simon_Lu @ 2021-11-05 19:40:00
@bilibilitdasc 收到
by wzsmallnb @ 2021-11-05 20:59:55
用char数组 s=cin.getline(s,sizeof(s));读入