编写一个循环从 1 到 100 的因子的程序.当它达到具有九个因子的数字时,它应该停止



我有计数递增,但它似乎不起作用。它只是一直跑到一百。有人有什么想法吗?

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("");
}
}

有几件事我想分享, 首先是数学,一个数字总是被认为是它本身的一个因素,所以其中一个变化将是检查j<i更新到嵌套的j<=i,但如果你是故意的,那么你不需要更新它。

除此之外,数学似乎没问题,另一件事是你的if块是如何工作的,你的计数检查应该在因子检查之外,即if(i % j == 0)就此而言,即使在第二个for循环之外,因为中断会将您带到 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;
}
}
}
}

希望对您有所帮助!!

最新更新