将迭代代码转换为递归代码
Converting iterative code to recursive code
我需要有关该功能的帮助。我会在其他函数中使用“val”,但是当我尝试 return 递归函数中的值只是 return 0 时。我需要在递归函数中创建这个循环
对不起我的英语不好。非常感谢
int val = 0;
for (int i = 0; i < arreglo.length; i++) {
if (arreglo[i] % 2 != 0) {
val++;
}
}
这是一个简单的例子,说明如何做到这一点:
对于递归的基本情况,您必须提供起始索引和初始值,因此为 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
}
}
我需要有关该功能的帮助。我会在其他函数中使用“val”,但是当我尝试 return 递归函数中的值只是 return 0 时。我需要在递归函数中创建这个循环 对不起我的英语不好。非常感谢
int val = 0;
for (int i = 0; i < arreglo.length; i++) {
if (arreglo[i] % 2 != 0) {
val++;
}
}
这是一个简单的例子,说明如何做到这一点:
对于递归的基本情况,您必须提供起始索引和初始值,因此为 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
}
}