Matrix_zero @ 2022-03-05 11:23:44
#include<iostream>
using namespace std;
int cnt = 1;
int main() {
char isbn[13]{};
cin >> isbn;
int i,sum=0;
for (i = 0; i < 12; i++) {
if (isbn[i] >= '0' && isbn[i] <= '9') {
sum += ((isbn[i] - '0') * cnt)%11;
cnt++;
}
}
sum %= 11;
if (sum == isbn[12] - '0'||isbn[12]=='X'&&sum==10)
cout << "Right";
else
{
if(sum!=10)
isbn[12]=sum+'0';
else
isbn[12]='X';
cout<<isbn;
}
}
by Jason2011 @ 2022-03-09 23:13:44
isbn码有十三个字符所以要开14。
by Matrix_zero @ 2022-03-11 22:13:50
@Jason2011 开了十四个怎么还是2,3,8,10wa啊tat
by Jason2011 @ 2022-03-13 15:38:34
#include<iostream>
using namespace std;
int cnt = 1;
int main() {
char isbn[14]{};
cin >> isbn;
int i,sum=0;
for (i = 0; i < 12; i++) {
if (isbn[i] >= '0' && isbn[i] <= '9') {
sum += ((isbn[i] - '0') * cnt)%11;
cnt++;
}
}
sum %= 11;
if (sum == isbn[12] - '0'||isbn[12]=='X'&&sum==10)
cout << "Right";
else
{
if(sum!=10)
isbn[12]=sum+'0';
else
isbn[12]='X';
cout<<isbn;
}
}
by Jason2011 @ 2022-03-13 15:40:00
我改成14提交都AC
by Jason2011 @ 2022-03-13 15:41:52
你有改其他地方吗