返回值不正确的递归方法

时间:2014-08-22 15:29:28

标签: java recursion methods

这种递归方法似乎是在增加总和。出于某种原因,当返回和值时,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;
    }
}

1 个答案:

答案 0 :(得分:2)

你需要

 return meanRec(c, b, sum);

否则它会递归,但总是返回第一次调用的sum/c.length