这是问题:
“编写一个名为 gcd 的方法,它接受两个整数作为参数并返回两个数的最大公约数。两个整数 a 和 b 的最大公约数 (GCD) 是作为 a 和 b 的因子的最大整数。任意数加 1 的 GCD 为 1,任意数加 0 的 GCD 为该数。
计算两个数字的 GCD 的一种有效方法是使用 Euclid 算法,该算法说明如下:
GCD(A, B) = GCD(B, A % B)
GCD(A, 0) = Absolute value of A"
我真的很困惑如何解决这个问题。我只是想要一些提示和提示,说明我在迄今为止的程序中做错了什么。(我必须放入扫描仪,这是我老师的要求。)不要给我完整的代码,因为我有点想自己解决这个问题。也许只是给我一个提示,说明我如何合并您在上面看到的这个公式。(如果你想知道为什么我输入 == 0,那是因为我认为如果你有两个数字,比如 0 和 90,它们的 GCD 应该是 0 对吧??)
此外,我的代码必须包含 while 循环......我更喜欢 if 循环......
提前致谢!:)
我目前的程序:
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int a = console.nextInt();
int b = console.nextInt();
gcd (a, b);
}
public static void gcd(int a, int b) {
System.out.print("Type in two numbers and I will print outs its Greatest Common Divisor: ");
int gcdNum1 = console.nextInt();
int gcdNum2 = console.nextInt();
while (gcdNum1 == 0) {
gcdNum1 = 0;
}
while (gcdNum2 > gcdNum1) {
int gcd = gcdNum1 % gcdNum2;
}
System.out.print(gcdNum1 + gcdNum2);
}
}