英文:
Converting iterative code to recursive code
问题
我需要一些关于那个函数的帮助。我将在其他函数中使用“val”,但是当我尝试在递归函数中返回这个值时,它总是返回0。我需要将这个循环放入递归函数中。
对我的英语表示抱歉。非常感谢。
int val = 0;
for (int i = 0; i < arreglo.length; i++) {
if (arreglo[i] % 2 != 0) {
val++;
}
}
英文:
I need some help with that function. I gonna use "val" in other functions but when I try to return the value in a recursive function just return 0. I need to make this loop in a recursive function
Sorry for my English. Thanks a lot
int val = 0;
for (int i = 0; i < arreglo.length; i++) {
if (arreglo[i] % 2 != 0) {
val++;
}
}
答案1
得分: 1
这里是一个简单的示例,演示如何实现这个过程:
对于递归的基本情况,您需要提供起始索引和初始值,因此将 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++; // 增加值 - 偶数
}
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); // 输出 4
}
}
英文:
Here's a simple example how this can be done:
For the base case of recursion you have to provide starting index and initial value, so pass 0 for index
parameter and 0 for val
parameter:
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
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论