Ana sayfa » Javascript Fibonacci Algoritması
Algoritma Javascript Yazılım Dilleri

Javascript Fibonacci Algoritması

Fibonacci dizisini, orta çağın yetenekli İtalyan matematikçisi Leonardo Fibonacci tarafından keşfedilmiştir. Fibonacci dizisi ilk iki sayı 0 ve 1 olmak üzere önceki 2 sayının toplamından sonraki sayıyı bulma algoritması ile oluşturulmaktadır. Şöyle ki

İlk Sayı : 0

İkinci Sayı : 1

Sonraki Sayı = 0 + 1 = 1;

Sonraki Sayı = 1 +1 = 2 ;

Sonraki Sayı = 2 + 1 = 3; diye devam eder. Bu dizi 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 diye devam eder.

Javascript dili ile Fibonacci Algoritmasını koda dökelim. Girilen sayı kadar Fibonacci dizisi üreten bir kod yazalım:

<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script type="text/javascript">
    function fibonacci(){
        var n1 = 0, n2 = 1, n3;
	var sayi = document.getElementById("sayi").value;
        var sonuc = n1 + " " + n2 + " ";  //0 ve 1 sayılarını yazar. Fibonacci dizisinin İlk iki sayısı
	for (var i = 2; i< sayi; ++i)  //loop 2'den başlar çünkü 0 ve 1 i zaten yazdırmıştık.    
        {
    	    n3 = n1 + n2;
            sonuc += n3 + " ";
            n1 = n2;
            n2 = n3;
        }    
	document.getElementById("sonuc").value = sonuc;
}
</script>

<div>
    <h3>Fibonacci</h3>
    <label>Sayı giriniz : </label>
    <input type="text" id="sayi" name="sayi">
    </br>
    <button class="button-fluid" onclick = "fibonacci()">Hesapla</button>
    </br>
    <label>Sonuç : </label>
    <input type="text" id="sonuc" name="sonuc" readonly>
</div>

Burada yazdığın ve recursive olmayan kodlara  https://js.do/suleymanduzgun/fibonacci-fonksiyonu  linkinden erişebilirsiniz.

Javascript Recursive (Özyineli) Fibonacci Fonksiyonu

Recursive (Özyineli) olarak faktöriyel fonksiyonunu HTML kodları ile birlikte şöyle yazabiliriz.

<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script type="text/javascript">
function fibonacci(){
	var sayi =document.getElementById("sayi").value;
	var sonuc = recursiveFibonacci(0, 1, sayi);
	document.getElementById("sonuc").value = sonuc;
}

function recursiveFibonacci(a, b, sayi){
	var sonuc = a + " ";
	if(sayi > 1){
   		sonuc += recursiveFibonacci(b, a+b, --sayi);
    }
    return sonuc;
}
</script>


<div>
	<h3>Faktoriyel Hesapla</h3>
 	<label>Sayı giriniz : </label>
  	<input type="text" id="sayi" name="sayi">
 	</br>
  	<button onclick = "fibonacci()">Hesapla</button>
 	</br>
 	<label>Sonuç : </label>
  	<input type="text" id="sonuc" name="sonuc" readonly>
</div>

Javascipt ile ilgili kodları online olarak çalıştırmak için Js.do sitesini ücretsiz kullanabilirsiniz, yukarıda yazdığım kodlara https://js.do/suleymanduzgun/recursive-fibonacci linkinden erişebilirsiniz.. Burada yazdığım kodları da orada teyit edebilirsiniz. Herkese iyi çalışmalar dilerim.

Süleyman Düzgün

Ankara Ünv. Bilgisayar Müh.
Kıdemli Yazılım Geliştirici

Yorum Ekle

Yorum yazmak için tıklayın.