这种递归方法似乎是在增加总和。出于某种原因,当返回和值时,sum等于4,而不是10,它应该是值。为什么总和不等于10?我只是测试方法,看它是否有效,数组会改变。
public class TestMeanVal {
public static void main(String[] args){
int[] intArray = new int[] {1,2,3,4};
System.out.println(meanRec(intArray, intArray.length-1, 0));
}
static double meanRec(int[] array, int b, int g){
int sum = g;
if (c.length == 1){
return c[0]/1.0;
}else if(b >= 0){
sum += c[b];
b--;
meanRec(c,b, sum);
}
return sum/c.length;
}
}
答案 0 :(得分:2)
你需要
return meanRec(c, b, sum);
否则它会递归,但总是返回第一次调用的sum/c.length
。