完美偶数计数| 豆包MarsCode AI刷题

66 阅读2分钟

完美偶数计数

问题描述

小C定义了一个“完美偶数”。一个正整数 xx 被认为是完美偶数需要满足以下两个条件:

  1. xx 是偶数;
  2. xx 的值在区间 [l,r][l,r] 之间。

现在,小C有一个长度为 nn 的数组 aa,她想知道在这个数组中有多少个完美偶数。


测试样例

样例1:

输入:n = 5,l = 3,r = 8,a = [1, 2, 6, 8, 7]
输出:2

样例2:

输入:n = 4,l = 10,r = 20,a = [12, 15, 18, 9]
输出:2

样例3:

输入:n = 3,l = 1,r = 10,a = [2, 4, 6]
输出:3

解题思路

  1. 初始化计数器

    • 首先创建了一个变量 count,并初始化为 0。这个变量的作用是用于统计满足特定条件的元素个数,也就是在给定范围 [l, r] 内的偶数个数。
  2. 遍历数组并检查条件

    • 通过增强型 for 循环 for (int i : a) 来遍历输入的整数数组 a。对于数组 a 中的每一个元素 i,会进行以下两个条件的检查:

      • 首先,调用 isEvenNumber(i) 方法来判断该元素是否为偶数。这一步利用了前面定义的 isEvenNumber 方法的功能,确保只考虑偶数元素。
      • 然后,检查该元素是否在指定的范围 [l, r] 内,即判断 l <= i && i <= r 是否成立。只有当一个元素同时满足是偶数并且在给定的范围之内这两个条件时,才符合我们要统计的目标。
  3. 统计满足条件的元素个数

    • 当一个元素 i 满足上述两个条件时,就将计数器 count 的值加 1。通过这样的方式,在遍历完整个数组 a 后,count 变量的值就代表了在范围 [l, r] 内的偶数个数。
  4. 返回统计结果

    • 最后,将统计得到的满足条件的元素个数(也就是 count 的值)作为 solution 方法的返回值返回,以便在其他地方使用这个结果。

解题代码

public class Main {

    // 判断一个数是否为偶数的方法
    public static boolean isEvenNumber(int a) {
        return a % 2 == 0;
    }

    public static int solution(int n, int l, int r, int[] a) {
        // 用于统计在范围 [l, r] 内的偶数个数
        int count = 0;
        for (int i : a) {
            if (isEvenNumber(i) && l <= i && i <= r) {
                count++;
            }
        }
        return count;
    }

    public static void main(String[] args) {
        int[] a1 = {1, 2, 6, 8, 7};
        System.out.println(solution(5, 3, 8, a1) == 2); // 输出: True

        int[] a2 = {12, 15, 18, 9};
        System.out.println(solution(4, 10, 20, a2) == 2); // 输出: True

        int[] a3 = {2, 4, 6};
        System.out.println(solution(3, 1, 10, a3) == 3); // 输出: True
    }
}