/** * @author nonefly * 2015年8月27日 */public class Gcd { /** * 暴力尝试 */ public static int gcd0(int a, int b) { if(a < 0 || b < 0) return -1; for (int i = a > b ? b : a; i > 1; i--) { if(a % i == 0 && b % i == 0) return i; } return 1; } /** 解法一 * 欧几里得算法(辗转相除法) * 求两个数(a b,假设a > b)最大公约数, * 每次用较大数a除b取余, * 余数c不为0则让较大数等于较小数,较小数等于余数,即: * a = b; b= c; */ public static int gcd1(int a, int b) { if(a < 0 || b < 0) return -1; if(a == b || a == 0) return b; if(b == 0) return a; if(a < b) return gcd1(a, b % a); else return gcd1(b, a % b); } /** * 更相减损术 来自《九章算术》 * ps:我也不知道这算法来头,只是知道算法思想,查后才知它的出处和名字~ * */ public static int gcd2(int a, int b) { if(a < 0 || b < 0) return -1; if(a == b) return a; if((a & 1) > (b & 1)) return gcd2(a, b >> 1); if((a & 1) < (b & 1)) return gcd2(a >> 1, b); if((a & 1) == 0 && (b & 1) == 0) return gcd2(a >> 1, b >> 1) << 1; return gcd2(Math.abs(a - b), b > a ? a : b); } public static void main(String[] args) { System.out.println(gcd0(99, 66)); }}
详细解决方案
java实现多种形式求解最大公约数
热度:106 发布时间:2016-04-22 19:47:45.0
相关解决方案
- java 乱码 汉字是 ? 如何转换成汉字
- java web 登录次数限制,该如何解决
- java 工商银行网银支付 B2B的 都亟需什么,需要注意什么
- Java Applet程序从JDK6升级到7时遇到的有关问题
- java web 视频相干
- java 系统单点登录解决方案
- java 获取客户端IP解决办法
- JAVA 后台怎么获得前台页面FCKedit编辑器中的内容以及内容的样式
- java 正则化匹配有关问题
- JAVA WEB导航条,该怎么处理
- java 中Node 有关问题
- 吐了,java Timer 终止不了。
- java web开发解决办法
- 关于 java cast 有关问题,你明白不
- java ftp 下传和上载乱码有关问题
- java web项目上的一些文件
- Hibernate操作数据库 报错java.lang.Integer cannot be cast to java.lang.String如何改
- java struts 文件上载
- java web baidu map开发
- JAVA WEB导航条解决办法
- java 编写ftp上载
- java web中的一个有关问题,困扰小弟我很久了
- java web 与tomcat解决办法
- java web基于j2ee的一些有关问题
- java 内网外网的一个需求,该怎么处理
- jsp 页面 安插ArrayList 报错。为什么,已经加了import="java.util."了呀!
- java dwg 怎样用java把dwg便是aoutcad的格式文件转换成gif,jpg等格式
- 求《Java Web 程序设计与项目实践》解决办法
- java webservice解决方法
- java 与jsp,该怎么解决