完美偶数计数

131 阅读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 我们可以在 solution 函数中实现逻辑来计算数组 a 中满足条件的“完美偶数”的数量。具体步骤如下:

  1. 初始化一个计数器 count 为 0。
  2. 遍历数组 a 中的每个元素 x
  3. 检查 x 是否是偶数并且在区间 [l, r] 之间。
  4. 如果满足条件,则将计数器 count 增加 1。
  5. 返回计数器 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;
}

代码解释

  1. 函数定义:

    cpp
    int solution(int n, int l, int r, vector<int>& a)
    
    • n 是数组 a 的长度。
    • l 和 r 定义了区间的范围。
    • a 是输入的整数数组。
  2. 初始化计数器:

    cpp
    int count = 0;
    
  3. 遍历数组并检查条件:

    cpp
    for (int i = 0; i < n; ++i) {
        if (a[i] % 2 == 0 && a[i] >= l && a[i] <= r) {
            count++;
        }
    }
    
  4. 返回计数器的值:

    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 函数的正确性。