我试图弄清楚这个递归方法的作用。有人可以完成递归调用的几个步骤吗?我好像没明白。
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/