Dies steht in Zusammenhang mit dem HackerRank-Algorithmusproblem 'Kangaroo'.Funktion gibt undefined zurück. Warum?
Hier ist mein Code:
function kangaroo(x1, v1, x2, v2) {
// Complete this function
if(x2>x1 && v2>v1)return "NO";
if(x1>x2 && v1>v2)return "NO";
if(x1 == x2){
return "YES";
}else{
kangaroo(x1+v1,v1,x2+v2,v2);
}
}
var result = kangaroo(0,3,4,2);
console.log(result);
Das ist das Problem:
Es gibt zwei Kängurus auf einer Zahlenskala bereit, in der positiven Richtung zu springen (dh , zur positiven Unendlichkeit). Das erste Känguru beginnt am Standort und bewegt sich mit einer Geschwindigkeit von Metern pro Sprung. Das zweite Känguru beginnt am Ort und bewegt sich mit einer Geschwindigkeit von Metern pro Sprung. Kannst du anhand der Startpositionen und Bewegungsraten für jedes Känguru feststellen, ob sie jemals gleichzeitig am gleichen Ort landen werden?
x1 ist der Ausgangspunkt des Känguruh 1.
die Geschwindigkeit des Känguruh 1.
x2-v1 ist der Ausgangspunkt von Känguru ist 2.
v2 ist die Geschwindigkeit der Känguru 2.
Mein Code gibt undefined
zurück, warum?
'return Känguru (x1 + v1, v1, x2 + v2, v2)' Sie Rückkehr nicht das Ergebnis der rekursiven Aufruf –
Mögliche Duplikat [rekursive Funktion returns undefined] (https://stackoverflow.com/questions/12737970/recursive-function-returns-undefined) –