最近有同学期末考试,有个老师出了一题求最小公倍数的问题。本来的话这样的东西在百度上是一大堆,但是他们的这位老师出的题目是程序的填空题有几个主要的地方被挖去了。而且这种求最小公倍数的方法很特殊。按照常规的思路几乎想不到,我也是查阅了很多资料才把程序写出来。
1.先来看下被挖去的地方
这种方法又有几个程序员能想到呢,这题出的还是很有难度的,在这里也算是学习了。
2.下面是完整的程序
package org;
public class Test1 {
public static void main(String[] args) {
int c1 = (int) Math.floor(Math.random() * 100);
int c2 = (int) Math.floor(Math.random() * 100);
int c3 = factor(c1, c2);
System.out.println(c1 + "和" + c2 + "的最小公倍数是:" + c3);
}
static int factor(int x, int y) {
/*为最小公倍数计算做准备,不然在while后,x.y从新赋值会影响计算结果.*/
int z = x * y;
//2个数交换位置
if (x < y) {
int tmp = x;
x = y;
y = tmp;
}
do {
int temp;
temp = x % y;
x = y;
y = temp;
} while (y != 0);
//最小公倍数
return z / x;
//return x; 最大公约数
}
}
下面是运行效果图