题解
2025-09-26 19:57:50
发布于:广东
0阅读
0回复
0点赞
#include <iostream>
using namespace std;
int main() {
char ch;
int sum = 0, count = 0;
// 单次遍历,实时计算,不存储整个字符串
for (int i = 1; i <= 12; i++) {
cin.get(ch);
if (ch >= '0' && ch <= '9') {
count++;
sum += (ch - '0') * count;
}
}
// 读取最后一个字符(识别码)
char last_char;
cin.get(last_char);
// 计算正确识别码
char correct_char;
int mod_result = sum % 11;
if (mod_result == 10) {
correct_char = 'X';
} else {
correct_char = mod_result + '0';
}
// 直接比较并输出,不存储中间结果
if (last_char == correct_char) {
cout << "Right";
} else {
// 重新输出前12个字符
cin.clear();
cin.seekg(0);
for (int i = 0; i < 12; i++) {
cout.put(cin.get());
}
cout << correct_char;
}
return 0;
}
这里空空如也






有帮助,赞一个