酷代码 AI
菜单
服务商

C++ 实现:判断 N 个数在二进制、八进制、十进制、十六进制下的可能性

以下是实现该功能的 C++ 代码: ```cpp #include <iostream> #include <string> using namespace std; // 检查字符串是否可能为二进制数 bool isBinary(const string& num) { for (char c : num) { if (c != '0' && c != '1') { return false; } } return true; } // 检查字符串是否可能为八进制数 bool isOctal(const string& num) { for (char c : num) { if (c < '0' || c > '7') { return false; } } return true; } // 检查字符串是否可能为十进制数 bool isDecimal(const string& num) { for (char c : num) { if (c < '0' || c > '9') { return false; } } return true; } // 检查字符串是否可能为十六进制数 bool isHexadecimal(const string& num) { for (char c : num) { if (!((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F'))) { return false; } } return true; } int main() { int N; cin >> N; cin.ignore(); // 消耗掉换行符 for (int i = 0; i < N; ++i) { string num; getline(cin, num); bool binary = isBinary(num); bool octal = isOctal(num); bool decimal = isDecimal(num); bool hexadecimal = isHexadecimal(num); cout << binary << " " << octal << " " << decimal << " " << hexadecimal << endl; } return 0; } ``` 代码解释 1. 函数定义: - `isBinary` 函数:遍历字符串中的每个字符,若字符不是 `0` 或 `1`,则返回 `false`,否则返回 `true`。 - `isOctal` 函数:遍历字符串中的每个字符,若字符不在 `0` 到 `7` 之间,则返回 `false`,否则返回 `true`。 - `isDecimal` 函数:遍历字符串中的每个字符,若字符不在 `0` 到 `9` 之间,则返回 `false`,否则返回 `true`。 - `isHexadecimal` 函数:遍历字符串中的每个字符,若字符既不是数字 `0` 到 `9`,也不是字母 `A` 到 `F`,则返回 `false`,否则返回 `true`。 2. 主函数: - 读取输入的整数 `N`,表示要判断的数的个数。 - 使用 `for` 循环读取 `N` 个字符串,并调用上述四个函数分别判断每个字符串是否可能为二进制、八进制、十进制、十六进制数。 - 输出判断结果,用空格分隔,每行输出一个字符串的判断结果。 复杂度分析 - 时间复杂度:对于每个输入的字符串,需要遍历一次,时间复杂度为 $O(k)$,其中 $k$ 是字符串的长度。总共需要处理 $N$ 个字符串,因此总的时间复杂度为 $O(Nk)$。 - 空间复杂度:只使用了常数级的额外空间,因此空间复杂度为 $O(1)$。 ######[AI问答 | 812点数解答 | 2026-01-02 19:28:20]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]