问题
- 计算两个非负整数p和q的最大公约数
算法思想
- 若q是0,则最大公约数为p
- 否则,将p除以q得到余数r
- p和q的最大公约数即为q和r的最大公约数
Java
- 源码
public class GCD {
// 获取最大公约数
public static int gcd(int p, int q) {
if (q == 0) return p;
int r = p % q;
return gcd(q, r);
}
}
- 测试用例
public class Test {
public static void main(String[] args) {
int a = 16;
int b = 20;
System.out.println(GCD.gcd(a, b));
}
}
- 测试结果
4