使用递归计算整数数组中的偶数

时间:2014-03-27 17:54:45

标签: java arrays

我想在整数数组中找到偶数的数量。 到目前为止我写了这段代码

public static int EvenNum(int[] arr) {
    int index = 0;
    if (arr[index] % 2 == 1) {
        return 0;
    } else if (arr[index] % 2 == 0) {
        return 1;
    }
    index++;
    return index + EvenNum(arr);
}

请帮助我运行此代码

2 个答案:

答案 0 :(得分:1)

您可以使用索引参数来了解要检查的数组中的位置。

public static int EvenNum(int[] arr, int index)
{
    if (index == arr.length) return 0;  // Stop recursion
    //return (arr[index] % 2 == 0 ? 1 : 0) + EvenNum(arr, index + 1);
    // or....
    int result;
    if ((arr[index] % 2) == 0) {    // Is even
        result = 1;
    }
    else {                          // Is odd
        result = 0;
    }
    return result + EvenNum(arr, index + 1);
}

public static void main(final String... args)
{
    // Start with index = 0
    System.out.println(EvenNum(new int[]{1,2,3,4,5}, 0));
} 

答案 1 :(得分:-1)

在EvenNum()方法中使用循环:

int evenNoCount = 0;
for (int i=0; i<arr.length();i++){
    if(arr[i]%2 == 0)
        evenNoCount++;
}
return evenNoCount;