将迭代代码转换为递归代码

时间:2020-10-25 02:57:13

标签: java recursion recursive-datastructures

我需要有关该功能的帮助。我将在其他函数中使用“ val”,但是当我尝试在递归函数中返回值时,仅返回0。我需要在递归函数中进行此循环 对不起我的英语不好。非常感谢

int val = 0;
for (int i = 0; i < arreglo.length; i++) {
    if (arreglo[i] % 2 != 0) {
        val++;
    }
}

1 个答案:

答案 0 :(得分:0)

这是一个简单的示例,该如何完成:

对于递归的基本情况,您必须提供起始索引和初始值,因此将index参数传递0,将val参数传递0:

public class Recursive{
     public static int recursive(int[] arreglo, int index, int val) {
         if (index == arreglo.length ) {
             return val;
         } else {
             if (arreglo[index] % 2 == 0) {
                 val++;  // increment value - even number
             }
             return recursive(arreglo, index+1, val);
         }
     }
 
     public static void main(String []args){
         int[] r = {1, 2, 3, 4, 5, 6, 7, 8};
         int result = recursive(r, 0, 0);
         System.out.println(result); // Outputs 4 
     }
}
相关问题