我正在尝试使用for循环(具有迭代次数)来查找整数的因式分解,但输出大于指定的循环数。
我在笔记本电脑上写了相同的代码,但是在特定的迭代次数且不超过一定数量的情况下,它可以正常工作。
public class Test {
public static void main(String args[]) {
int n=5;
for(int a=1; a<=n; a++ ) {
n=a*n;
System.out.println(n);
}
}
}
输出
5
10
30
120
600
3600
25200
201600
1814400
18144000
199584000
-1899959296
答案 0 :(得分:3)
您正在循环中更改n的值,因此要进行更多的迭代。使用另一个变量来计数循环,例如
public class Test {
public static void main(String args[]) {
int n=5, counter=5;
for(int a=1; a<=counter; a++ ) {
n=a*n;
System.out.println(n);
}
}
}
答案 1 :(得分:0)
我想您正在寻找类似的东西:
1*n = n
2*n = 2n
... ... ...
(n-1)*n = n(n-1)
n*n = n^2
因此,部分结果类似于a*n
,其中n
是固定的,并且a
递增1
直到n
。在您的代码中,您放置了n=a*n
,这意味着您的n
在每次迭代中都会更新。不要更新n
的值,该值将删除包含n=a*n
的行。实际上,您也不需要counter
变量。只需将a*n
的值打印到print语句中。因此,解决方案可能是
public class Test {
public static void main(String args[]) {
int n=5;
for(int a=1; a<=n; a++ ) {
System.out.println(a*n);
}
}
}
答案 2 :(得分:0)
//感谢您的帮助,我能够找出问题所在 //这就是我克服限制迭代的问题的方式/
public class Test {
public static void main(String args[]) {
int n=5;
int counter=n;
for(int a=1; a<=counter; a++ ) {
n=a*n;
System.out.println(n);
}
}
}