Java 无法理解在线法官的这种解决方案为何是错误的

Java 无法理解在线法官的这种解决方案为何是错误的,java,Java,我试图解决一个相对简单的问题,输入孩子的数量和糖果的总数,如果糖果可以平均分配给孩子,则打印是,否则打印否 从图中可以看到,前两个测试用例通过,而最后一个没有通过。我在挠头,有什么想法吗 我认为您需要检查案例总数=0。也许在这种情况下你应该打印否 if(total == 0) System.out.println("NO"); else if(total % numKids == 0) System.out.println("YES"); else System.o

我试图解决一个相对简单的问题,输入孩子的数量和糖果的总数,如果糖果可以平均分配给孩子,则打印是,否则打印否

从图中可以看到,前两个测试用例通过,而最后一个没有通过。我在挠头,有什么想法吗


我认为您需要检查案例总数=0。也许在这种情况下你应该打印否

if(total == 0)
     System.out.println("NO");
else if(total % numKids == 0)
     System.out.println("YES");
else
     System.out.println("NO");

您对长过载的总和有问题。您可以在每个步骤中使用%,然后在最终总和中再次使用:

public static void main(String[] args) {
    try (Scanner scan = new Scanner(System.in)) {
        for (int i = 0, T = scan.nextInt(); i < T; i++) {
            int N = scan.nextInt();
            int sum = 0;

            for (int j = 0; j < N; j++)
                sum = (int)(scan.nextLong() % N + sum) % N;

            System.out.println(N == 0 ? "YES" : "NO");
        }
    }
}

你知道测试用例是什么吗?不,我只知道我通过的两个,最后一个是hiddenIt,它可能正在测试一些角落/无效的用例,比如负输入或类似的东西。它可能正在尝试边缘用例。也许它尝试使用0个糖果,所以0%的numKids将是真的。在不知道测试用例是什么的情况下,我们无法帮助您。这不是一个答案为什么?我提供了一个角落的箱子。当你没有糖果的时候,这并不意味着你可以在平等的孩子之间分享。非常感谢,通常kattis会给你一个错误,或者我这么想,你能告诉我为什么你在一次尝试中声明了扫描仪吗?谢谢,againScanner是一个外部资源,应该关闭它。
public static void main(String[] args) {
    try (Scanner scan = new Scanner(System.in)) {
        for (int i = 0, T = scan.nextInt(); i < T; i++) {
            int N = scan.nextInt();
            int sum = 0;

            for (int j = 0; j < N; j++)
                sum = (int)(scan.nextLong() % N + sum) % N;

            System.out.println(N == 0 ? "YES" : "NO");
        }
    }
}