SORU
22 Ocak 2012, Pazar


Java recursive Fibonacci dizisi

Bu kod (basit ama lütfen beni mazur görün hala bir çaylak olduğum için :P) açıklayınız:

public int fibonacci(int n)  {
    if(n == 0)
        return 0;
    else if(n == 1)
      return 1;
   else
      return fibonacci(n - 1)   fibonacci(n - 2);
}

Örneğin özellikle n çünkü eğer son satır = 5 ile, sonra kafam karıştı (4) fibonacci(3) adını alacak ve benzeri ama bu algoritma, bu yöntemle dizin 5 değerini hesaplar anlamıyorum fibonacci. Lütfen bir çok detay ile açıkla!

CEVAP
22 Ocak 2012, Pazar


Fibonacci dizisi her öğeyi bir önceki toplamıdır. Yani, özyinelemeli bir algoritma yazdı.

Yani

fibonacci(5) = fibonacci(4)   fibonacci(3)

fibonacci(3) = fibonacci(2)   fibonacci(1)

fibonacci(4) = fibonacci(3)   fibonacci(2)

fibonacci(2) = fibonacci(1)   fibonacci(0)

Şimdi zaten fibonacci(1)==1 and fibonacci(0) == 0. Bu yüzden, daha sonra diğer değerleri hesaplayabilirsiniz.

Şimdi

fibonacci(2) = 1 0 = 1
fibonacci(3) = 1 1 = 2
fibonacci(4) = 2 1 = 3
fibonacci(5) = 3 2 = 5

Ve fibonacci dizisi 0,1,1,2,3,5,8,13,21.... 5th element fibonacci dizisi 5 döndüren görebiliriz.

Recursion Tutorial görmek için buraya tıklayınız.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • campos9896

    campos9896

    24 Mart 2012
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006
  • Top Gear

    Top Gear

    27 Mart 2006