gpt4 book ai didi

java - 递归缺失值无法弄清楚如何修复,请测试人员

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:38 25 4
gpt4 key购买 nike

该函数应该接受 2 个参数:n 数组中 int 的数量和 max 数组中 int 的最大值(默认值为 1)。此函数返回数组可能的选项数量。

例如,当n = 3且max = 2时

  1. {1, 1, 1}  2. {1, 1, 2} 3. {1, 2, 2} 4. {2, 2, 2}

max = 3 且 n = 2

  • {1, 1} 2. {1, 2} 3. {1, 3} 4. {2, 2} 5. {2, 3} 6. {3, 3}
  • 这是我的代码:

    public class Ex14 {
    public static int howManySorted(int n, int max) {
    int[] myIntArray = new int[n];
    fillAnArray(myIntArray, 0);
    return howManySorted(myIntArray, max, 0, 1);
    }

    private static int howManySorted(int[] myIntArray, int max, int i, int way) {
    way++;
    myIntArray[i]++;
    if (i < myIntArray.length - 1)
    if (myIntArray[i] == max)
    i++;
    if (myIntArray[myIntArray.length - 1] == max) return way;


    return (howManySorted(myIntArray, max, i, way));
    }

    //filling the array with ones for defualt way when all values equals 1
    private static void fillAnArray(int[] myIntArray, int t) {
    if (t == myIntArray.length)
    return;
    else
    myIntArray[t] = 1;
    fillAnArray(myIntArray, t + 1);
    }
    }

    如果在第二个示例中使用第一个示例,它会跳过一个数组,那么我的代码似乎给了我正确的值 4。测试员:

    public class Tester14 {
    public static void main() {
    System.out.println("Test: Checking method 'howManySorted' on n=3 and max=2");
    System.out.println("Expected result = 4, Student result = "
    + Ex14.howManySorted(2, 3) + "\n");
    }
    }

    最佳答案

    您的代码有问题您首先增加每个单元格直到最大值然后当你达到最大值时,你会转移到数组的下一个单元格这对于您 max > 2 的每个示例都是如此当两个单元格都需要递增时想要返回值例如,在第二个测试中,您错过了 {2,2}

    您的步骤是:

    • {1,1}
    • {2,1}
    • {3,1}
    • {3,2}
    • {3,3}

    关于java - 递归缺失值无法弄清楚如何修复,请测试人员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54060207/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com