酷代码 AI
菜单
服务商

c++输入n个数,每个数都在1到100范围内,求最大的奇数比最小的偶数大多少。保证至少有一个奇数和一个偶数。 输入: 第一行为一个正整数n(n<100)。 第二行为n个正整数。 输出: 一个数,即最大的奇数比最小的偶数大多少。

以下是解决该问题的C++代码: ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; // 输入正整数n int maxOdd = 0; // 初始化最大奇数为0 int minEven = 101; // 初始化最小偶数为101 for (int i = 0; i < n; i++) { int num; cin >> num; // 输入每个正整数 if (num % 2 == 1) { // 如果是奇数 if (num > maxOdd) { // 更新最大奇数 maxOdd = num; } } else { // 如果是偶数 if (num < minEven) { // 更新最小偶数 minEven = num; } } } cout << maxOdd - minEven << endl; // 输出最大奇数比最小偶数大的值 return 0; } ``` 代码解释: 1. 输入处理:首先读取一个正整数`n`,表示接下来要输入的正整数的数量。 2. 初始化变量:初始化`maxOdd`为0,用于存储最大的奇数;初始化`minEven`为101,用于存储最小的偶数。 3. 循环输入:使用`for`循环读取`n`个正整数。对于每个输入的数,判断它是奇数还是偶数。 - 如果是奇数,且该奇数大于当前的`maxOdd`,则更新`maxOdd`的值。 - 如果是偶数,且该偶数小于当前的`minEven`,则更新`minEven`的值。 4. 输出结果:最后输出`maxOdd - minEven`,即最大的奇数比最小的偶数大的值。 复杂度分析: - 时间复杂度:$O(n)$,其中`n`是输入的正整数的数量。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2026-01-16 19:57:24 | AI问答 | 474点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多