java - 修复两个整数的 GCD

标签 java greatest-common-divisor

我是 Java 初学者。我被要求编写一个程序来查找用户输入的两个数字的 GCD。我试过这个但没有输出,如何解决?

import java.util.Scanner;

public class myclass {

    public static void main(String args[]) {

        Scanner scan = new Scanner(System.in);

        int a = scan.nextInt();
        int b = scan.nextInt();

        if (a < b) {
            for (int c = a; c < 0; c--) {
                if (a % c == 0 && b % c == 0) {
                    System.out.print(c);
                }
            }

            if (b < a) {
                for (int c = b; c < 0; c--) {
                    if (b % c == 0 && a % c == 0) {
                        System.out.print(c);
                    }
                }
            }
        }
    }
}

最佳答案

更大的问题是你的循环条件不正确:

for (int c = a; c < 0; c--)

应该是

for (int c = a; c > 0; c--)

反之亦然。尽管处理 b < a 很好问题,以及a == b通过简单地使用 else对于第二个条款(当然有适当的括号)。

然后是在找到 GCD 后打印出错误解决方案的问题。为此,请使用 break;在打印语句之后。

关于java - 修复两个整数的 GCD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20107474/

相关文章:

java - 给定两个随机整数数组,打印它们的交集。也就是说,打印两个给定数组中存在的所有元素

java - Combitronics 和质因数分解 : Calculate num of Pairs of (m, n) 其中 GCD(m,n)=x

使用 GUI 界面的 Java 最大公约数 - Int/String/Calculations 的问题

java - 如何使用 Apache POI 获取正确的单元格

java - "Forwarded"请求

algorithm - 哪种方法更好

java - 我编写了计算最大公约数的代码,但存在问题

java - USACO 培训 : Mixing Milk fails on the last Case

java - 在 Java 中将列表或单个列表项作为方法参数传递是否更有效?