0

我有计数增加,但它似乎没有工作。它只是一直运行到一百。有没有人有任何想法?

public class Main<x> {

    public static void main(String[] args) {
        int count = 0;
        for(int i = 1; i <= 100; i++) {
            System.out.print("Factors of " + i + ": ");
            for(int j = 1; j < i; j++)
                if(i % j == 0) {
                    count++;
                    if (count == 9)
                        break;
                    System.out.print(j + " ");

                }

            System.out.println("");
 }
}
4

1 回答 1

0

我想分享几件事,首先是数学,数字始终是其自身的一个因素,因此其中一项更改将是检查j<i更新到j<=i您嵌套的内部,但如果您是故意这样做的那么你不需要更新它。

除此之外,数学似乎没问题,另一件事是你的 if 块是如何工作的,你对 count 的检查应该在检查因子if(i % j == 0)之外,甚至在第二个for循环之外,因为 break 会把你带到它被击中的for循环之外,因为你需要完全停止迭代,即下一个数字不应该被击中,一旦你得到第一个有9个因子的数字,你需要在第一个for循环中保持中断。

您的最终代码应如下所示:

public class Main
{
    public static void main(String[] args) {
        for(int i = 1; i <= 100; i++) {
            int count = 0;
            System.out.print("Factors of " + i + ": ");
            for(int j = 1; j <= i; j++) {
                if(i % j == 0) {
                    System.out.print(j + " ");
                    count++;
                }
            }

            System.out.println("\n");
            if (count >= 9) {
                break;
            }
        }
    }
}

希望能帮助到你!!

于 2019-09-20T03:52:11.403 回答