java - 这个递归方法有什么作用呢?

标签 java arrays recursion

我试图弄清楚这个递归方法的作用。有人可以完成递归调用的几个步骤吗?我好像没明白。

public static int p(int[ ] a){
    if(a.length==0) return 0;
    else if(a.length==1) return a[0] %2;
    else return p(Arrays.copyOfRange(a,0,a.length/2)) + p(Arrays.copyOfRange(a,a.length/2,a.length));
}

最佳答案

作为提示,两个递归调用分别将函数应用于数组的前半部分和后半部分。

作为第二个提示,由于每次调用都会对两个子调用的值求和,因此结果将是应用于由单个元素组成的每个单例数组的函数之和。

最后,如果单个元素为偶数,则结果为 0;如果为奇数,则结果为 1。

根据这些提示,您能找到该方法的作用的简单描述吗?

希望这有帮助!

关于java - 这个递归方法有什么作用呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24072793/

相关文章:

C++ 指向数组的指针

java - 使用递归检查整数的位数是否为偶数

recursion - 玩具语言乘法而不使用 *

java - 使用递归查找给定数组中的最小值

java - 参数是@Test 需要的,但没有被标记为@optional 或定义

javascript - 在 JavaScript 中使用数组

java - Eclipse 调试器无法识别新的 Java 代码

Javascript:查找数组/对象中的值以确定表单显示

java - Spring Batch - 是否可以针对不同的异常以不同的方式进行容错?

java - 更改 SWT TreeItem 父级