对最小公倍数
上课时讲解的解法如下。
思路: 找出两个数的较大数,从他开始遍历值[max, max*min],运算的步进值为1;最大的循环数 (max*min-max+1)
我的修改: 如果修改步进值为max,则可以大大减少循环次数,最大循环次数为 min
修改如下:
public static int getMinCommonBeishu(int num1, int num2){
int max = num1 > num2 ? num1 : num2;
int min = num1 + num2 - max;
for(int i=1;i<= min;i++){
if( i*max % min == 0){
return i*max;
}
}
return -1;
}
课上Demo:
public class Demo05 {
public static void main(String[] args) {
//求两个数据的最小公倍数 15 25 75
//返回值: 参数
int num = getMinGongbei(151, 250);
System.out.println(num);
}
/**
* 获取两个数据的最小公倍数 15 25 71 88
*
* @param a 参数1
* @param b 参数2
* @return 返回最小公倍数
*/
public static int getMinGongbei(int a, int b) {
int max = a > b ? a : b;
int min = a < b ? a : b;
//通过遍历
for (int i = max; i <= max * min; i++) {
if (i % max == 0 && i % min == 0) {
return i;
}
}
return -1;
}
} |
|