ISBN题解
2026-01-13 20:02:31
发布于:浙江
2阅读
0回复
0点赞
大家好,我是энтджей,今天是我2026年第五次正式发题解!
能不能点个赞
回归正题:
首先:
- 既然要求出识别码,那么就需要求出前9个数字的乘积和,即:
string s;
cin >> s;//这里把输入也写了
int ans = 0;
int j = 1;
for(int i = 0;i < s.size() - 1;i++){
if(s[i] != '-'){
ans += (s[i] - '0') * j;
j++;
}
}
接下来,有需要求出识别码了。
- 先把ans对11取模:
ans %= 11;
- 判断识别码正误
1.ans≠10:- 最简单的,只需要直接判断即可
if(s[s.size() - 1] - '0' == ans){
cout << "Right";
} else {
for(int i = 0;i < s.size() - 1;i++){
cout << s[i];
}
cout << ans;
}
2.ans=10
- 其实也就一个特判:
if(ans == 10){
if(s[s.size() - 1] == 'X'){
cout << "Right";
} else {
for(int i = 0;i < s.size() - 1;i++){
cout << s[i];
}
cout << 'X';
}
}
那么好了!“合成”:
就是完整代码啦
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin >> s;
int ans = 0;
int j = 1;
for(int i = 0;i < s.size() - 1;i++){
if(s[i] != '-'){
ans += (s[i] - '0') * j;
j++;
}
}
ans %= 11;
if(ans == 10){
if(s[s.size() - 1] == 'X'){
cout << "Right";
} else {
for(int i = 0;i < s.size() - 1;i++){
cout << s[i];
}
cout << 'X';
}
} else {
if(s[s.size() - 1] - '0' == ans){
cout << "Right";
} else {
for(int i = 0;i < s.size() - 1;i++){
cout << s[i];
}
cout << ans;
}
}
return 0;
}
🎉完结撒花🎉
这里空空如也




有帮助,赞一个