Witam,
napisałem prostą funkcję w JS liczącą największy wspólny dzielnik dwóch liczb algorytmem Euklidesa (za pomocą odejmowania). Problem polega na tym, że funkcja w tej postaci pokazanej poniżej zwraca undefined:
function nwd(a,b)
{
var c = a - b;
if (c == b)
return c;
if (c < b)
nwd(b,c);
else
nwd(c,b);
}
document.write(nwd(1989,867));
Natomiast gdy wyświetlenie wartości w przeglądarce dodam bezpośrednio wewnątrz funkcji to działa poprawnie:
function nwd(a,b)
{
var c = a - b;
if (c == b) {
document.write(c);
return false;
}
if (c < b)
nwd(b,c);
else
nwd(c,b);
}
nwd(1989,867);
Jest w stanie ktoś wytłumaczyć dlaczego tak się dzieje?