C++实现正整数奇偶分类输出并颠倒后两位且个位数不带零
### 需求理解 我们的目标是使用 C++ 编写一个程序,该程序接收一系列正整数作为输入,将这些正整数分为奇数和偶数两类,然后分别输出。对于每个正整数,需要将其后两位数字颠倒,并且确保个位数不为零。 ### 代码实现 ```cpp #include <iostream> #include <vector> // 颠倒后两位数字且个位数不为零的函数 int reverseLastTwoDigits(int num) { if (num < 10) { return num; } int lastDigit = num % 10; int secondLastDigit = (num / 10) % 10; if (lastDigit == 0) { return num; } return (num / 100) * 100 + lastDigit * 10 + secondLastDigit; } int main() { std::vector<int> oddNumbers; std::vector<int> evenNumbers; int num; std::cout << "请输入正整数(输入 -1 结束输入):" << std::endl; while (std::cin >> num && num != -1) { if (num <= 0) { std::cout << "输入的数字必须是正整数,请重新输入。" << std::endl; continue; } int reversedNum = reverseLastTwoDigits(num); if (reversedNum % 2 == 0) { evenNumbers.push_back(reversedNum); } else { oddNumbers.push_back(reversedNum); } } std::cout << "奇数:"; for (int odd : oddNumbers) { std::cout << odd << " "; } std::cout << std::endl; std::cout << "偶数:"; for (int even : evenNumbers) { std::cout << even << " "; } std::cout << std::endl; return 0; } ``` ### 代码解释 1. **`reverseLastTwoDigits` 函数**: - 该函数用于颠倒一个整数的后两位数字。 - 如果数字小于 10,直接返回该数字。 - 提取最后一位和倒数第二位数字。 - 如果最后一位数字为 0,则不进行颠倒,直接返回原数字。 - 否则,将后两位数字颠倒并返回。 2. **`main` 函数**: - 定义两个向量 `oddNumbers` 和 `evenNumbers` 分别存储奇数和偶数。 - 提示用户输入正整数,输入 -1 结束输入。 - 对于每个输入的正整数,调用 `reverseLastTwoDigits` 函数进行处理。 - 根据处理后的数字的奇偶性,将其添加到相应的向量中。 - 最后分别输出奇数和偶数。 ### 进阶使用指南 - **性能优化**:如果输入的数字非常大,可以考虑使用更高效的算法来处理数字的颠倒。 - **错误处理**:当前代码已经对输入的非正整数进行了简单的错误处理,但可以进一步完善,例如处理输入非数字的情况。 - **扩展功能**:可以添加更多的功能,如统计奇数和偶数的个数,或者对输出进行排序。 - **安全建议**:在实际应用中,需要考虑输入的数字可能超出整数范围的情况,可以使用 `long long` 类型来处理更大的数字。 - **常见陷阱规避**:注意处理个位数为零的情况,避免颠倒后出现不合理的结果。 ### 相关技术栈推荐 - **C++ 标准库**:C++ 标准库提供了丰富的容器和算法,可以帮助我们更高效地处理数据。 - **STL 容器**:如 `vector`、`list` 等,可以方便地存储和管理数据。 ### 学习资源链接 - [C++ 官方文档](https://en.cppreference.com/w/) - 《C++ Primer》:经典的 C++ 学习书籍。 ### 开发建议 - 注重代码的可读性和可维护性,添加必要的注释。 - 进行充分的测试,确保代码在各种情况下都能正常工作。 - 学习和掌握 C++ 的标准库和常用算法,提高编程效率。 ######[AI写代码神器 | 1017点数解答 | 2026-03-15 01:53:31]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)339
- Python 实现:四位数正整数各位分解与求和及注意要点(字节豆包 | 306点数解答 | 2025-07-25 23:54:48)166
- Python实现:输入四位数正整数分解并求各位数字之和(DeepSeek | 299点数解答 | 2025-07-25 23:55:30)132
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)308
- 编程模拟:偶数张牌经 k 次洗牌后第 p 张牌编号求解(DeepSeek | 126点数解答 | 2026-01-05 12:15:30)28
- Python实现:输入正整数输出最高与最低比特十进制值(字节豆包 | 398点数解答 | 2026-01-23 19:47:50)39
- C++实现喵际数独锦标赛自动评判系统:快速验证数独解答正确性(字节豆包 | 666点数解答 | 2025-05-16 16:46:31)168
- Python 实现:计算 1 到 n 区间内所有奇数之和(字节豆包 | 111点数解答 | 2025-12-07 15:31:15)29
- Python 实现:计算 1 到 n 区间内所有奇数之和(字节豆包 | 135点数解答 | 2025-12-13 20:02:13)20
- Pascal编程:求m值、矩阵旋转与高精度计算π值的实现(DeepSeek | 953点数解答 | 2025-12-15 12:26:36)45
- 轻松计算:区间 [1, n] 内所有奇数之和及开发注意要点(DeepSeek | 241点数解答 | 2026-01-02 18:47:14)101
- 破解日本特殊自然数序列:快速定位不含 4 的第 k 个数!(DeepSeek | 2381点数解答 | 2026-01-20 17:28:44)25