酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++求最大奇数与最小偶数之差的高效解法

## 💡 问题分析 题目要求计算一组数中“最大的奇数”与“最小的偶数”的差值。保证输入中至少有一个奇数和偶数。 ## 🔧 解决方案 读取所有数后,遍历一次即可找到最大值(奇数中)和最小值(偶数中),然后相减。 ## 💻 C++ 代码实现 ```cpp #include <iostream> #include <climits> using namespace std; int main() { int n; cin >> n; int maxOdd = 0; // 由于所有数在1~100,奇数最小为1,所以0可作初始值 int minEven = INT_MAX; // 初始化为最大整数 for (int i = 0; i < n; i++) { int x; cin >> x; if (x % 2 == 1) { if (x > maxOdd) maxOdd = x; } else { if (x < minEven) minEven = x; } } cout << maxOdd - minEven << endl; return 0; } ``` ## 📝 代码说明 - `maxOdd` 初始为0,因为所有数都为正且奇数至少为1,只要遍历到奇数就会更新。 - `minEven` 初始为 `INT_MAX`,确保任何偶数都会更新它。 - 一次遍历同时维护两个极值,时间复杂度 O(n)。 - 保证输入合法,无需额外检查。 ######[AI问答 | 334点数解答 | 2026-08-29 13:19:44]

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