假设int a = 12,int b = 22。然后gcd(b,a%b)或gcd(22,12)如何返回值?
private int gcd(int a, int b){
if(b==0) {
if(a<0){
return -a;
} else {
return a;
}
} else {
return gcd(b,a%b);
}
}
答案 0 :(得分:0)
我不确定这里的问题是什么,但听起来你觉得这个函数返回了两个值。
最后'l'
语句实际发生的是,它返回了调用return
的结果。所以它并没有真正返回两个值,它只返回该调用的结果,这是gcd(b, a%b);
类型的单个值。
答案 1 :(得分:0)
据我所知,这是Response Code : 500
Response Body : {
"name" :"INTERNAL_SERVICE_ERROR",
"message":"An internal service error has occurred",
"information_link":"https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR",
"debug_id":"efbbc528aeaaf"
}, change log level to DEBUG for details.
可以用作返回值的方式。这很简单:gcd(a , a % b)
递归调用return gcd(a , a % b)
并返回此调用的返回值,即gcd
。
答案 2 :(得分:0)
结果返回2基本上如果b的值不等于0,它将再次运行函数gcd,其中你的新a现在是b而你的新b是%b。重要的是,这将在函数gcd的递归循环中重复,直到你的b等于0.
一旦你的b等于0,它将进入你的第二个循环,检查a是否小于0或任何负数。如果是负数,则返回a的负值。如果它是正数或更大或等于零,它将返回a的正值。
如果你仍然不明白我想说什么,可能你需要了解gcd如何计算。您可以阅读有关此website
的更多信息