L1-022 奇偶分家(10分)[java][python]

4 阅读1分钟

题目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 是偶数即可。