A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

scriptlulu~

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© scriptlulu~ 初级黑马   /  2019-6-27 08:16  /  705 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对最小公倍数
上课时讲解的解法如下。
思路: 找出两个数的较大数,从他开始遍历值[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;
    }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马