求两数最大公约数,最小公倍数-Java
2015-09-23 21:47
513 查看
两数的最大公约数的计算是有数学规律的,程序只是按照规律辅助计算,其中包括了递归和循环两种实现。而最小公约数可由(m*n)/ (最大公约数)得到。具体代码如下:
package test; import java.util.*; /*求最大公约数和最小公倍数*/ public class MaxCommonDivisorAndMinCommonMultiple { public static void main(String[] args) { Scanner scan = new Scanner(System.in);// 接收控制台输入的信息 System.out.print("请输入第一个整数:"); int num1 = scan.nextInt(); // 取出控制台输入的信息 System.out.print("请输入第二个整数:"); int num2 = scan.nextInt(); // 取出控制台输入的信息 System.out.println(maxCommonDivisor(num1, num2));// 调用maxCommonDivisor()方法 System.out.println(minCommonMultiple(num1, num2));// 调用minCommonMultiple()方法 } // 递归法求最大公约数 public static int maxCommonDivisor(int m, int n) { if (m < n) {// 保证m>n,若m<n,则进行数据交换 int temp = m; m = n; n = temp; } if (m % n == 0) {// 若余数为0,返回最大公约数 return n; } else { // 否则,进行递归,把n赋给m,把余数赋给n return maxCommonDivisor(n, m % n); } } // 循环法求最大公约数 public static int maxCommonDivisor2(int m, int n) { if (m < n) {// 保证m>n,若m<n,则进行数据交换 int temp = m; m = n; n = temp; } while (m % n != 0) {// 在余数不能为0时,进行循环 int temp = m % n; m = n; n = temp; } return n;// 返回最大公约数 } // 求最小公倍数 public static int minCommonMultiple(int m, int n) { return m * n / maxCommonDivisor(m, n); } }输出结果:
请输入第一个整数:16 请输入第二个整数:12 4 48
相关文章推荐
- java15 IO装饰设计模式
- SpringMVC 的环境配置
- springMVC实现简单登录
- 在Struts2中使用ValueStack、ActionContext、ServletContext、request、session等
- 《2016展讯校招软开java笔试题》
- struts体系结构
- java hibernate +mysql demo
- java14 处理流
- java13 InputStream,Reader
- HDU1026 Ignatius and the Princess I(java)
- java12 File类
- java11 Guava:谷歌开发的集合库
- 在Eclipse中添加Servlet-api.jar的方法
- eclipse控制台输出重定向到…
- java10 WeakHashMap
- java08 Set
- java07 map
- Android studio导入eclipse项目且不改变目录结构
- 认识理解Java中native方法
- java06