JAVA面试算法题4

简介:

题目:

输入两个正整数m和n (m>n),求其最大公约数和最小公倍数


代码:

这题目用小学里面学过的”辗转相除法“就可以求最大公约数了,而最小公倍数则是2个数乘积除以最大公约数。适当考虑下2个数大小就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package  com.charles.algo;
/**
  * @author charles.wang
  * 题目:输入两个正整数m和n (m>n),求其最大公约数和最小公倍数
  */
public  class  GongYueShuGongBeiShu {
       
     private  GongYueShuGongBeiShu(){}
       
       
     /**
      * 用辗转相除法来计算最大公约数
      */
     public  static  int  maxGongYue( int  m,  int  n){
           
         //确保m>=n 才可以做除法运算,否则交换2个数
         int  temp;
         if (m<n){
             temp= n;
             n=m;
             m=temp;
         }
           
           
         //计算余数,它会小于n
         int  remain = m % n;
           
         //如果整除了,那么除数就是最大公约数
         if (remain== 0 )
             return  n;
           
         //否则,递归调用
         return  maxGongYue( n,remain);
           
     }
       
     /**
      * 最小公倍数的值为二个数的乘积除以最大公约数
      */
     public  static  int  minGongBei( int  m, int  n){
         return  m*n/maxGongYue(m,n);
     }
     /**
      * @param args
      */
     public  static  void  main(String[] args) {
           
           
         int  m =  12 ;
         int  n =  18 ;
           
         System.out.println( "输入数为:" +m+  " ," +n);
         System.out.println( "最大公约数为:" +maxGongYue(m,n));
         System.out.println( "最小公倍数为:" +minGongBei(m,n));
     }
}




本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/1345651,如需转载请自行联系原作者
目录
相关文章
|
17天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
32 0
|
1天前
|
存储 安全 Java
[Java基础面试题] Map 接口相关
[Java基础面试题] Map 接口相关
|
1天前
|
Java
[Java 面试题] ArrayList篇
[Java 面试题] ArrayList篇
|
2天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
2天前
|
Java 调度
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
28 1
|
2天前
|
设计模式 搜索推荐 Java
面试官不按套路出牌,上来就让聊一聊Java中的迭代器(Iterator ),夺命连环问,怎么办?
面试官不按套路出牌,上来就让聊一聊Java中的迭代器(Iterator ),夺命连环问,怎么办?
12 0
|
2天前
|
存储 安全 Java
每日一道Java面试题:说一说Java中的泛型?
今天的每日一道Java面试题聊的是Java中的泛型,泛型在面试的时候偶尔会被提及,频率不是特别高,但在日后的开发工作中,却是是个高频词汇,因此,我们有必要去认真的学习它。
15 0
|
2天前
|
Java 编译器
每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!
每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!
14 0
|
7天前
|
XML 缓存 Java
Java大厂面试题
Java大厂面试题
18 0
|
7天前
|
存储 安全 Java
Java大厂面试题
Java大厂面试题
12 0