完美偶数计数
问题描述
小C定义了一个“完美偶数”。一个正整数 xx 被认为是完美偶数需要满足以下两个条件:
- xx 是偶数;
- 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
解题思路
-
初始化计数器:
- 首先创建了一个变量
count,并初始化为0。这个变量的作用是用于统计满足特定条件的元素个数,也就是在给定范围[l, r]内的偶数个数。
- 首先创建了一个变量
-
遍历数组并检查条件:
-
通过增强型
for循环for (int i : a)来遍历输入的整数数组a。对于数组a中的每一个元素i,会进行以下两个条件的检查:- 首先,调用
isEvenNumber(i)方法来判断该元素是否为偶数。这一步利用了前面定义的isEvenNumber方法的功能,确保只考虑偶数元素。 - 然后,检查该元素是否在指定的范围
[l, r]内,即判断l <= i && i <= r是否成立。只有当一个元素同时满足是偶数并且在给定的范围之内这两个条件时,才符合我们要统计的目标。
- 首先,调用
-
-
统计满足条件的元素个数:
- 当一个元素
i满足上述两个条件时,就将计数器count的值加1。通过这样的方式,在遍历完整个数组a后,count变量的值就代表了在范围[l, r]内的偶数个数。
- 当一个元素
-
返回统计结果:
- 最后,将统计得到的满足条件的元素个数(也就是
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
}
}