【发布时间】:2013-01-29 15:15:38
【问题描述】:
我需要有关此循环的帮助。我的课程任务之一是制作 LCM 程序。
Sample output:
(8,12) LCM is 24
(4,3) LCM is 12
(5,10,20) LCM is 20
(18,24,52) LCM is 936
(12,10,26) LCM is 780
(99,63,24) LCM is 5544
(62,16,24) LCM is 1488
到目前为止,我有 2 个数字,但我不确定如何处理 3 个数字。我们应该在其他类上使用方法,所以这就是我为 LCM 类所拥有的。
public class LCM {
private int n, x, s = 1, t = 1;
public LCM()
{
n = 0;
x = 0;
s = 1;
t = 1;
}
public int lcmFind(int i, int y) {
for (n = 1;; n++) {
s = i * n;
for (x = 1; t < s; x++) {
t = y * x;
}
if (s == t)
break;
}
return (s);
}
}
【问题讨论】:
-
只是一个一般性的建议,使用更明显的变量名,而不仅仅是单个字母。否则它会很快变得复杂。
-
我不会阅读该代码。由于上述原因。
-
而不是
for (...) { t = y * x; } if (s == t) break;,只需if (y % s == 0) break;。 -
请不要省略
for循环条件,然后在循环块的末尾添加if ... break。这让那些必须阅读/维护代码的人感到困惑。变量名称同上。不,不会维护家庭作业代码,但它会被评分者阅读,最好马上养成好习惯。
标签: java