Wpis z mikrobloga

#naukaprogramowania #java

public void mystery1(int n) {
if (n <= 1) {
System.out.print(n);
} else {
mystery1(n / 2);
System.out.print(", " + n);
}
}

Jaki powinien być wynik dla mystery(4)?
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

nie no zaczynamy funkcje od 4, wpada program w instrukcje else (wypisuje ", 4") ;
dzieli na 2 i znowu do else (wypisuje ", 2");
dzieli na 2, wchodzi w IF (wypisuje 1);
wynik: ", 4, 21"
  • Odpowiedz
@Cyganowski: pamiętaj, że używając rekurencji wynik jest odkładany na stosie, a stos ma to do siebie, że ostatnie co do niego wejdzie pierwsze z niego wyjdzie, więc będzie 12,4
  • Odpowiedz