java基础算法之通过辗转相除求 最大公约数
2016-05-03 19:45
435 查看
最大公约数的意思就是整数m和n有最大的公共约数,这篇文章写的是辗转除来求最大的公约数,其实想想也蛮简单的,首先是我们需要其实之前我们都可以不用思考,只需要思考最后一步,因为是公约数, 然后返回值肯定是n,这里m>n; 这里可能有的人会思考,为什么通过取余来得到m,n,其实仔细想想,我们通过取余去掉的都是r=m%n,n的倍数 ,如果n是m的公约数那么r=0是符合,否则就只能去n剩下的里面去找了。
package com.jk.gcddemo; /** * @author jk * 这段代码写的是辗转除来求最大的公约数,其实想想也蛮简单的,首先是我们需要其实之前我们都可以不用思考,只需要思考最后一步,因为是公约数, * 然后返回值肯定是n,这里m>n; * 这里可能有的人会思考,为什么通过取余来得到m,n,其实仔细想想,我们通过取余去掉的都是r=m%n,n的倍数 * ,如果n是m的公约数那么r=0是符合,否则就只能去n剩下的里面去找了。 * */ public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int res = gcd(8, 6); System.out.println(res); } private static int gcd(int i, int j) { int m, n, r; // 使m>n if (i > j) { m = i; n = j; } else { m = j; n = i; } // 通过辗转除来求的最大公约数 r = m % n; while (r != 0) { m = n; n = r; r = m % n; } // 返回最大公约数 return n; } }
相关文章推荐
- java String 类的常用方法
- JavaWeb学习笔记——Session
- java中栈和堆区别
- JavaWeb学习笔记——JSP(2)
- 掌握java中的三种代码块的定义及使用
- java数组与集合的转换
- Java连MySQL的驱动mysql-connector-java-5.1.21-bin.jar的安装方法
- JavaWeb学习笔记——JSP
- Java中equals和==的区别
- JavaWeb学习笔记——servlet
- Java 类中各成分加载顺序 和 内存中的存放位置
- Java前辈:学习J2EE流程中的经验和教训
- 多线程并发库高级应用 之 java5中的线程并发库--线程锁技术
- [Java]二叉树简要解析(持续学习和整理)
- 举例说明一个 java程序的加载,初始化以及运行过程
- java多线程并发库高级应用 之 多个线程之间共享数据的方式探讨
- java多线程并发库高级应用 之 其它同步工具类
- java多线程并发库高级应用 之 java5中的线程并发库--线程池、Callable&Future
- java多线程并发库高级应用 之 线程范围内共享数据
- 6.jdk命令行工具