您的位置:首页 > 编程语言 > Java开发

JAVA算法---最大公约数和最小公倍数

2016-03-14 20:46 519 查看
JAVA最大公约数和最小公倍数:递归法和循环法分别实现

package 测试包;
public class 最大公约数2 {
public static void main(String[] args) {

// 递归法测试
System.out.println("递归法测试:");
System.out.println(gcd(12, 3));
System.out.println(lcm(12, 3));
// 循环法测试
System.out.println("循环法测试:");
System.out.println(gcd1(3, 12));
System.out.println(lcm1(12, 3));
}

// 递归法求最大公约数
public static int gcd(int m, int n) {
if (n <= m)
if (m % n == 0)
return n;
else
return gcd(n, m % n);
else
return gcd(n, m);// 递归调用
}
// 求最小公倍数
public static int lcm(int m, int n) {
return m * n / gcd(m, n);
}

// 循环法求最大公约数
public static int gcd1(int m, int n) {
while (m % n != 0) {
int temp = m % n;
m = n;
n = temp;
}
return n;
}
// 最小公倍数
public static int lcm1(int m, int n) {
return m * n / gcd1(m, n);
}
}


运算结果:

递归法测试:
3
12
循环法测试:
3
12
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: