文章
6
粉丝
58
获赞
63
访问
5.5k
简单模拟题,使用C++string类更为方便。要注意什么时候是char什么时候是int,可以用to_string函数进行转换
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
getline(cin, input); // 读取一行文本到string变量input
int weight = 10; // 初始化权重
int sum = 0; // 初始化和为0
// 遍历输入的字符串
for(auto c : input){
if(c != '-'){ // 忽略'-'
sum += ((c - '0') * weight); // 将字符转换为数字并加权
weight--; // 权重递减
}
}
// 计算模11的余数
int M = sum % 11;
int res = 11 - M; // 计算校验码
// 根据校验码的值设定最后一个字符
if(1 <= res && res <= 9){
last = to_string(res); // 校验码在1到9之间
}
if(res == 10) last = "X"; // 校验码为10时,使用“X”
if(res == 11) last = "0"; // 校验码为11时,实际上是0
string output = input + "-" + last; // 生成输出字符串
cout << output; // 输出结果
return 0;
}
登录后发布评论
暂无评论,来抢沙发