为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻过高山走不出你 2021-09-29 10:57:31
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。我不确定我在这里做错了什么。
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

您在第 6 行返回了错误的变量


if (u == 0){

    return u;

}

这应该是


if (u == 0){

    return t;

}

试试这个,它会起作用。


查看完整回答
反对 回复 2021-09-29
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

如前所述,问题是你唯一的return就是if (u == 0).


你应该用 if (t % u == 0)


此外,无需重新分配传递给该方法的变量,因此只需使用inTand inU:


if (inU == 0) {

    return inT;

}

return gcd(inU, inT % inU);


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信