如何编写一个简单的Java程序来找到两个数字之间最大的公约数?
2022-09-04 23:59:48
问题是:
“编写一个名为gcd的方法,该方法接受两个整数作为参数,并返回两个数字的最大公约数。两个整数 a 和 b 的最大公约数 (GCD) 是 a 和 b 的因子的最大整数。任何数字和 1 的 GCD 是 1,任何数字和 0 的 GCD 是该数字。
计算两个数字的GCD的一种有效方法是使用欧几里得算法,该算法声明如下:
GCD(A, B) = GCD(B, A % B)
GCD(A, 0) = Absolute value of A"
我对如何解决这个问题感到非常困惑。我只想得到一些提示和技巧,说明到目前为止我在程序中做错了什么。(我必须放一台扫描仪,这是我老师的要求。不要给我一个完整的代码,因为我有点想自己解决这个问题。也许只是给我一个提示,说明我如何结合你上面看到的这个公式。(如果你想知道为什么我输入==0,那是因为我认为如果你有两个数字,比如0和90,他们的GCD将是0对吧??)
另外,我的代码必须包含 while 循环...我宁愿循环...
提前致谢!:)
我目前的计划:
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);
}
}