计算 GCD java,为什么我一直得到 0?

public class gcd1 {


    public static int gcd(int inT, int inU) {

        int t = inT;

        int u = inU;


        if (u == 0) {

            return u;

        }

        return gcd(u, t % u);


    }

    public static void main(String[] args) {

        System.out.println(gcd(288, 30));

    }

}

当我应该得到 6 时,我一直得到 0。我不确定我在这里做错了什么。


翻过高山走不出你
浏览 146回答 2
2回答

慕容森

您在第 6 行返回了错误的变量if (u == 0){    return u;}这应该是if (u == 0){    return t;}试试这个,它会起作用。

摇曳的蔷薇

如前所述,问题是你唯一的return就是if (u == 0).你应该用 if (t % u == 0)此外,无需重新分配传递给该方法的变量,因此只需使用inTand inU:if (inU == 0) {    return inT;}return gcd(inU, inT % inU);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java