如何解决将迭代代码转换为递归代码
我需要有关该功能的帮助。我将在其他函数中使用“ val”,但是当我尝试在递归函数中返回值时,仅返回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);
System.out.println(result); // Outputs 4
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。