1 条题解
-
0
📝 题目大意
给定一个长度为 的整数序列 ,从中筛选出所有偶数,并保持原有顺序输出,用空格分隔。
💡 解题思路
- 题目分析:,数据范围极小,无需考虑效率问题。题目保证序列中至少包含一个偶数,因此不需要处理全为奇数的情况。
- 算法推导:遍历序列中的每个元素 ,判断 是否等于 (即是否为偶数),若是则立即输出。由于边读入边输出,无需额外存储偶数列表。
- 边界与细节:
- 输出格式要求用空格分隔,std.cpp 中每个偶数输出后都带一个空格,末尾会多一个空格,但 AtCoder 判题机对此容忍,不用额外处理。
- 数组 开到了 ,远超 上限,避免了越界风险。
- 数组下标从 开始,与题目中 的编号习惯一致。
⏱️ 复杂度分析
- 时间复杂度:,只需遍历一次序列。
- 空间复杂度:,仅存储输入数组。
💻 标准代码 (C++)
#include <bits/stdc++.h> using namespace std; int main () { int n, a[100005]; // n: 序列长度, a: 存储输入序列(多开空间防越界) scanf("%d", &n); // 读入 N for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); // 读入第 i 个数 if (a[i] % 2 == 0) // 判断是否为偶数 printf("%d ", a[i]); // 直接输出偶数,末尾会多一个空格但不影响 AC } return 0; }
- 1
信息
- ID
- 687
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者