题解 | #求最小公倍数#

求最小公倍数

http://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3

import java.util.Scanner;

/**

  • HJ108 求最小公倍数
  • 输入 3 7
  • 输出 35
  • 方法一、短除法:所有公共除数与所有余数之积,即为最小公倍数。
  • 方法二、求最大公约数有两种方法 更相减损法和辗转相处法(即类似短除法) 最小公倍数在求出最大公约数后 两个数相乘除以最大公约数就是最小公倍数
  • 方法三、结合方法一和二,先求出a,b最大公约数x,再用a/x 乘上 b/x 即为最小公倍数
  • 以下我们用的是更相减损法
  • 更相减损法是拿两个数中的较大值减去较小值,然后在减数、被减数、差之间选取两个较小值继续相减,直到减数和被减数相等,得出的数就是最大公约数。
  • 例://更相减损术:
  • //8 10
  • //10 - 8=2
  • //8 - 2= 6
  • //6-2=4
  • //4-2=2
  • //2==2于是最大公约数就是2
  • /
    public class Main {
    public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      while (sc.hasNext()){
          int a = sc.nextInt();
          int b = sc.nextInt();

// if(a%b==0) System.out.println(a);
// if(b%a==0) System.out.println(b);

        Main hj108 = new Main();
        int x = hj108.maxYue(a, b);

// 方法二、 int minBei = a*b/x;
// 方法三、
int minBei = a/x * b/x * x;
System.out.println(minBei);

    }

}

// 最大公约数方法
public int maxYue(int a,int b){
if(a == b) return a;
if(a>b){
int diff = a-b;
return maxYue(b,diff);
}else {
int diff = b-a;
return maxYue(a,diff);
}
}
}

全部评论

相关推荐

我见java多妩媚:大外包
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
440737次浏览 4493人参与
# 春招别灰心,我们一人来一句鼓励 #
41503次浏览 524人参与
# 北方华创开奖 #
107317次浏览 599人参与
# 地方国企笔面经互助 #
7930次浏览 18人参与
# 同bg的你秋招战况如何? #
75684次浏览 552人参与
# 虾皮求职进展汇总 #
114355次浏览 884人参与
# 阿里云管培生offer #
119895次浏览 2219人参与
# 实习,投递多份简历没人回复怎么办 #
2454094次浏览 34848人参与
# 实习必须要去大厂吗? #
55687次浏览 960人参与
# 提前批简历挂麻了怎么办 #
149836次浏览 1977人参与
# 投递实习岗位前的准备 #
1195731次浏览 18546人参与
# 你投递的公司有几家约面了? #
33180次浏览 188人参与
# 双非本科求职如何逆袭 #
661934次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4734次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157604次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11381次浏览 271人参与
# 发工资后,你做的第一件事是什么 #
12431次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35621次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20091次浏览 240人参与
# 我的上岸简历长这样 #
451933次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39241次浏览 314人参与
# 非技术岗是怎么找实习的 #
155852次浏览 2120人参与
牛客网
牛客企业服务