最大公约数和最小公倍数 in Java
来源:互联网 发布:sql sever设置主键 编辑:程序博客网 时间:2024/06/01 07:54
最近在学校当助教,课程是Java数据结构,因此重温一下算法和数据结构,也因此把算法和一些Java的特性学习的更深刻,也希望用写博客来监督自己的持续学习。
今天介绍的是Java中的最大公约数和最小公倍数的算法。不啰嗦了,直接上代码:
- 最大公倍数的普通写法
/** * use for loop to calculate common divisor * @param x * @param y * @return */ private int maxCommonDivisor(int x, int y) { // only use loop to deal with the problem if (x < y) { int temp = x; x = y; y = temp; } if (y == 0) { return x; } while (x % y != 0) { int temp = x % y; x = y; y = temp; } return y; }
- 最大公倍数的递归写法
private int maxCommonDivisorRecursion(int x, int y){ if(x < y){ //make sure x always larger than y int temp = x; x = y; y = temp; } if(y ==0){ return x; } if(x % y == 0){ //y can divide x return y; } else{ //recursion, and set y to new X, set y as m % n return maxCommonDivisorRecursion(y , x % y); } }
得到最大公倍数后,求最小公倍数,只需要使用公式 a*b/(最大公约数),既得所求:
/** * 使用公式,两数相乘,除以两数的最大公约数,所得结果为最小公倍数 * @param x * @param y * @return */ private int minCommonMultiple(int x, int y){ return x*y/maxCommonDivisor(x,y); }
References:
[1]http://blog.csdn.net/lwcumt/article/details/8029241
[2]http://www.cnblogs.com/hexiaochun/archive/2012/09/03/2668250.html
0 0
- 最大公约数和最小公倍数 in Java
- Java最大公约数和最小公倍数
- java:最小公倍数和最大公约数
- Java求最大公约数和最小公倍数
- Java实现最小公倍数和最大公约数
- java求两数最大公约数和最小公倍数
- java求最小公倍数和最大公约数
- Java求最大公约数和最小公倍数
- java 求最大公约数和最小公倍数
- JAVA算法---最大公约数和最小公倍数
- Java求最大公约数和最小公倍数
- java求最大公约数和最小公倍数
- Java求最大公约数和最小公倍数
- JAVA实现最大公约数和最小公倍数
- Java学习历程(关于最大公约数和最小公倍数)
- 最大公约数和最小公倍数(java实现)
- java——求最大公约数和最小公倍数
- Java笔试之求最大公约数和最小公倍数
- 机器学习-Logistic回归之使用随机梯度上升算法预测病马死亡率
- 第10章 资源(2)——资源字典
- eclipse安装maven汇总
- Note06--路由
- u盘启动安装ubuntu与windows双系统过程记录以及可能出现的问题提示
- 最大公约数和最小公倍数 in Java
- Android之旅第三站——Android默认打开各种文件格式DataAndType…
- Spring MVC中拦截器HandlerInterceptorAdapter中的preHandle方法
- python成长记(一)
- 数据结构 - 冒泡排序法详解
- 高一寒假非竞赛时间规划
- javascript事件(一)
- 机器学习概要
- mysql学习笔记(三)select语句