问题描述
小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我们可以在solution函数中实现逻辑来计算数组a中满足条件的“完美偶数”的数量。具体步骤如下:
- 初始化一个计数器
count为 0。 - 遍历数组
a中的每个元素x。 - 检查
x是否是偶数并且在区间[l, r]之间。 - 如果满足条件,则将计数器
count增加 1。 - 返回计数器
count的值。
以下是完整的代码实现:
cpp
#include <iostream>
#include <vector>
using namespace std;
int solution(int n, int l, int r, vector<int>& a) {
int count = 0;
for (int i = 0; i < n; ++i) {
if (a[i] % 2 == 0 && a[i] >= l && a[i] <= r) {
count++;
}
}
return count;
}
int main() {
vector<int> a1 = {1, 2, 6, 8, 7};
cout << (solution(5, 3, 8, a1) == 2) << endl;
vector<int> a2 = {12, 15, 18, 9};
cout << (solution(4, 10, 20, a2) == 2) << endl;
vector<int> a3 = {2, 4, 6};
cout << (solution(3, 1, 10, a3) == 3) << endl;
return 0;
}
代码解释
-
函数定义:
cpp int solution(int n, int l, int r, vector<int>& a)n是数组a的长度。l和r定义了区间的范围。a是输入的整数数组。
-
初始化计数器:
cpp int count = 0; -
遍历数组并检查条件:
cpp for (int i = 0; i < n; ++i) { if (a[i] % 2 == 0 && a[i] >= l && a[i] <= r) { count++; } } -
返回计数器的值:
cpp return count;
测试用例
a1 = {1, 2, 6, 8, 7},区间[3, 8],期望结果是 2(因为 6 和 8 是完美偶数)。a2 = {12, 15, 18, 9},区间[10, 20],期望结果是 2(因为 12 和 18 是完美偶数)。a3 = {2, 4, 6},区间[1, 10],期望结果是 3(因为 2、4 和 6 都是完美偶数)。
通过这些测试用例,我们可以验证 solution 函数的正确性。