C++例如:书号为978-7-121-41489-3,校验码3的计算步骤为: 1、9*1、7*3、8*1、7*3、1*1、2*3、1*1、4*3、1*1、4*3、8*1、9*3 2、9*1+7*3+8*1+7*3+1*1+2*3+1*1+4*3+1*1+4*3+8*1+9*3 = 127 3、127%10 = 7 4、10-7 = 3 请编写程序判断输入的ISBN号码中校验码是否正确,如果正确,输出yes。否则输出no
时间: 2024-01-17 15:34:34 浏览: 31
下面是使用 C++ 编写的程序,用于判断输入的 ISBN 号码中校验码是否正确:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool isValidISBN(const string& isbn) {
int sum = 0;
int factor = 1;
for (int i = 0; i < isbn.length() - 1; i++) {
if (isbn[i] == '-') continue;
int digit = isbn[i] - '0';
sum += digit * factor;
factor = (factor == 1) ? 3 : 1;
}
int checkDigit = isbn[isbn.length() - 1] - '0';
int calculatedCheckDigit = (10 - (sum % 10)) % 10;
return checkDigit == calculatedCheckDigit;
}
int main() {
string isbn;
cout << "请输入ISBN号码:";
cin >> isbn;
bool isValid = isValidISBN(isbn);
if (isValid) {
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
return 0;
}
```
你可以将这段代码复制到你的 C++ 编译器中运行,并输入要验证的 ISBN 号码。如果校验码正确,程序将输出 "yes",否则输出 "no"。