三种方法实现求两个数的最大公约数
来源:互联网 发布:windows8卸载软件 编辑:程序博客网 时间:2024/05/17 22:35
方法一/最简单的算法(效率最低),如下:
public static int getMaxDivisor(int a, int b) {
int max = 0;
int temp = Math.min(a, b);
for (int i = temp; i > 0; i--) {
if (a % i == 0 && b % i == 0) {
max = i;
break;
}
}
return max;// 当max为0时,即没有最大公约数
}
方法二/代码最少的算法,如下:
public static int getMaxDivisor(int a, int b){
if(Math.min(a, b)==0){
return Math.max(a, b);
}else{
return getMaxDivisor2(Math.min(a, b), Math.max(a, b)%Math.min(a, b));
}
}
方法三/方法二的变换,如下:
public static int getMaxDivisor(int a,int b){
int x=a;
int y=b;
while(Math.min(x,y)!=0){
int temp=y;
y=Math.min(x,y);
x=Math.max(temp,x)%Math.min(temp,x);
if(Math.min(x,y)==0){
return Math.max(x,y);
}
}
return Math.max(a,b);
}
- 三种方法实现求两个数的最大公约数
- 求两个数的最大公约数(三种方法)
- 三个方法实现求两个数的最大公约数
- 浅析求两个数的最大公约数的三种算法
- 求两个数的最大公约数的三种算法
- 求两个数的最大公约数的方法
- 求两个数最大公约数的方法
- 求两个数最大公约数的方法
- 求两个数最大公约数的多种方法
- 求两个数的最大公约数 C++实现
- java实现求两个数的最大公约数
- 求两个数的最大公约数的四种方法
- 利用三种方法求两个整数的最大公约数
- 使用三种方法求两个整数的最大公约数
- 第十二周 项目三:用递归方法求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 关于LNK2001错误的一些总结 ---ZT
- 验证控件
- 秦策2
- 递归算法和非递归算法的difference和转换
- STL中map、vector的iterator的简单用法
- 三种方法实现求两个数的最大公约数
- linux下TC(traffic contrl)命令的介绍和用法
- 可以保护眼睛的设置
- 即将出现的IT新一轮技术变革
- MultiByteToWideChar的一点问题
- 网上超强摘录
- BI数据库设计(一)
- Hibernate总结
- 饭否经典语录【转】