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。我不确定我在做什么错。
答案 0 :(得分:1)
您在第6行返回错误的变量
if (u == 0){
return u;
}
应该是
if (u == 0){
return t;
}
尝试一下,它将起作用。
答案 1 :(得分:1)
如上所述,问题是您唯一的return
是if (u == 0)
。
您应将其替换为if (t % u == 0)
此外,无需重新分配传递给方法的变量,因此只需使用inT
和inU
:
if (inU == 0) {
return inT;
}
return gcd(inU, inT % inU);