看注释,不懂问我
2026-08-22 10:52:01
发布于:安徽
4阅读
0回复
0点赞
给个赞呗plzzz
点赞都是帅哥美女
#include<bits/stdc++.h>
using namespace std;
char ISBN(string s) {//写函数计算校验码
string ss;//要新建,否则会修改s,不方便我们在主函数截取子串
for(int i=0; i<s.size(); i++) {
if(s[i]>='0'&&s[i]<='9')ss+=s[i];//过滤掉‘-’,将数字统计到新串中
}
int sum=0;//记录各位数之和
for(int i=0; i<=8; i++) {//必须这样,从1到9会越界
sum+=(ss[i]-'0')*(i+1);//将数位和统计到sum中
}
int ans=sum%11;//记录未加工的校验码结果
if(ans<10)return ans+'0';
else return 'X';//特判
}
int main() {
string s;
cin>>s;
if(ISBN(s)==s[s.size()-1])cout<<"Right";//比较校验码
else cout<<s.substr(0,s.size()-1)<<ISBN(s);//用子串加校验码
return 0;
}
这里空空如也



有帮助,赞一个