递归计数器未能达到++

时间:2016-05-27 16:54:53

标签: java recursion multidimensional-array

作为家庭作业,我被指派制作一个静态方法,计算将多米诺骨牌片放入2×N表内的变化量。

规则: - 它必须是递归的。 - 没有支持方法,但重载是可以的。 - 没有静态变量 - 没有支持数组

这是我到目前为止所做的:

    public static int domino(int n, int m) {
    int[][] board = new int[m][n];
    int sum = 0;
    System.out.println("##Checking c2:");
    if (n >= 2) {
        System.out.println("fitting a c2");
        sum += Ex14.domino(n-2,m,sum);
    }
    else {
        sum++;
        System.out.println("can't fit a c2");
    }
    System.out.println("##Checking c1:");
    if (n >= 1) {
        System.out.println("fitting a c1");
        sum  += Ex14.domino(n-1,m, sum);
    }
    else {
        sum++;
    }
    return sum;
}`

这是重载方法:

public static int domino(int n,int m,int sum) {
    int[][] board = new int[m][n];
    if (n >= 2) {
        System.out.println("fitting a c2");
        Ex14.domino(n-2,m,sum);
    }
    if (n>= 1) {
        System.out.println("fitting a c1");
        Ex14.domino(n-1,m,sum);
    }
    else {
        sum++;
        System.out.println("Current Sum is: " + sum);
    }
    return sum;
}

代码的作用是检查它是否可以添加c2(2列片段)或c1(1片段片段)并使用较小的表调用自身。 一旦它不再适合c1或c2,由于N低于1,它会加1(和++)。

由于某种原因,它适用于2x2表,但不适用于2x3或2x4。我添加了"拟合c1 / 2"和"当前总和"调试问题在哪里,它似乎不会运行sum ++,即使它到达它。

任何提示?

0 个答案:

没有答案