题目ID:L1-022 分数:10分 语言:Java / Python
题目描述
给定 N 个正整数,请统计奇数和偶数各有多少个。
输入格式
- 输入第一行给出一个正整数 N(≤ 1000)
- 第2行给出 N 个非负整数,以空格分隔
输出格式
在一行中先后输出奇数的个数、偶数的个数,中间以1个空格分隔。
样例
输入
9
88 74 101 26 15 0 34 22 77
输出
3 6
解题思路
遍历 N 个数,对每个数判断奇偶性(num % 2 == 0 为偶数),分别计数即可。
注意:0 是偶数。
代码实现
Java
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine().trim());
String[] parts = br.readLine().trim().split("\\s+");
int odd = 0, even = 0;
for (int i = 0; i < N; i++) {
int num = Integer.parseInt(parts[i]);
if (num % 2 == 0) even++;
else odd++;
}
System.out.println(odd + " " + even);
}
}
Python
N = int(input())
nums = list(map(int, input().split()))
odd = sum(1 for x in nums if x % 2 == 1)
even = N - odd
print(odd, even)
运行验证
样例验证
输入
9
88 74 101 26 15 0 34 22 77
奇数:101, 15, 77 → 3个 偶数:88, 74, 26, 0, 34, 22 → 6个
输出:3 6 ✓
复杂度分析
- 时间复杂度:O(N)
- 空间复杂度:O(1)
总结
简单的奇偶统计题,注意 0 是偶数即可。