gpt4 book ai didi

java - 如果递归调用应该在 a 或 b 变为 0 时停止并返回,为什么这个最大公约数程序的输出为 -1

转载 作者:行者123 更新时间:2023-11-30 10:34:29 25 4
gpt4 key购买 nike

1.该方法采用两个参数来计算最大公约数。2.程序不返回a或b的值,而是返回-1。

public static int gcd(int a,int b)
{

if(a==0 && b>0)
{
// returns when a becomes 0
return b;
}
else if(b==0 && a>0)
{
//returns when b becomes 0
return a;

}
else if(a>b)
gcd(b,a%b);
else
gcd(a,b%a);

return -1;
}

最佳答案

您还需要返回递归调用。所以不需要返回-1

public static int gcd(int a, int b) {

if (a == 0 && b > 0) {
// returns when a becomes 0
return b;
} else if (b == 0 && a > 0) {
//returns when b becomes 0
return a;

} else if (a > b) {
return gcd(b, a % b);
} else {
return gcd(a, b % a);
}
}

关于java - 如果递归调用应该在 a 或 b 变为 0 时停止并返回,为什么这个最大公约数程序的输出为 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com