假設int a = 12,int b = 22。那麼gcd(b,a%b)或gcd(22,12)如何返回該值?java在一次返回兩個值時如何返回一個值
private int gcd(int a, int b){
if(b==0) {
if(a<0){
return -a;
} else {
return a;
}
} else {
return gcd(b,a%b);
}
}
假設int a = 12,int b = 22。那麼gcd(b,a%b)或gcd(22,12)如何返回該值?java在一次返回兩個值時如何返回一個值
private int gcd(int a, int b){
if(b==0) {
if(a<0){
return -a;
} else {
return a;
}
} else {
return gcd(b,a%b);
}
}
我不完全確定這裏的問題是什麼,但它聽起來像你認爲這個函數返回兩個值。
實際發生的是最後的return
聲明,它是返回調用gcd(b, a%b);
的結果。所以它不會真的返回兩個值,它只是返回該調用的結果,該調用是int
類型的單個值。
據我瞭解的問題,它是如何使用gcd(a , a % b)
作爲返回值。這很簡單:return gcd(a , a % b)
遞歸調用gcd
並返回此調用的返回值,它是一個int
。
結果返回2的結果基本上如果b的值不等於0,它將再次運行gcd函數,其中新a是b,而新b是%b。重要的部分是,這將在函數gcd的遞歸循環中重複,直到您的b等於0.
一旦您的b等於0,它將轉到您的第二個循環,檢查a是否小於0或任何負數。如果它是負數,它將返回a的負值。如果它是正數或者更大或者等於零,它將返回a的正值。
如果你仍然不明白我想說什麼,可能你需要了解gcd如何計算。你可能可以閱讀更多關於這個website
問題不明確 – stinepike
這將無法正常工作。你必須使用其他的if。沒有什麼比其他的東西在java – Berrigan
我不確定你在問什麼。此代碼只返回一個值。你對什麼感到困惑? – forgivenson