一个十六进制整数,如果从左往右读和从右往左读是一样 的,我们称这个数为十六进制回文数。 例如:1ABA1 是十六进制回文数,1ABCD 不是十六进制回 文数。 给定 n 个十六进制整数,请分别判断它们是否是十六进制回 文数。 用c++代码写出来
时间: 2024-09-07 12:04:06 浏览: 53
java代码-2. 任意给出一个十进制整数,将十进制整数转换为二进制数。
在C++中,你可以创建一个函数来检查十六进制数是否为回文。首先,你需要将十六进制字符串转换为整数,然后反转该整数并与原始数值进行比较。以下是简单的步骤:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
bool isHexPalindrome(const std::string& hexStr) {
// 将十六进制字符串转换为整数
unsigned long long num = std::stoull(hexStr);
// 反转字符串并再次转换为十六进制
std::string reversedHex = std::to_string(num);
std::reverse(reversedHex.begin(), reversedHex.end());
// 检查原字符串和反转后的字符串是否相等
return hexStr == reversedHex;
}
int main() {
int n;
std::cout << "请输入十六进制数的数量: ";
std::cin >> n;
for (int i = 0; i < n; ++i) {
std::string hexInput;
std::cout << "请输入第 " << (i + 1) << " 个十六进制数: ";
std::cin >> hexInput;
if (isHexPalindrome(hexInput)) {
std::cout << hexInput << " 是一个十六进制回文数.\n";
} else {
std::cout << hexInput << " 不是一个十六进制回文数.\n";
}
}
return 0;
}
```
在这个程序中,`isHexPalindrome` 函数接受一个十六进制字符串作为输入,然后检查它是否与其反转后的字符串相同。在`main`函数中,用户可以输入任意数量的十六进制数字,程序会依次判断每个输入是否是回文。
阅读全文