C dili dersleri serisinin bu dersinde, c dilinde fibonacci serisini ekrana yazdıran programın yapımını anlatacağız. Öncelikle fibonacci serisini tanıyalım.
Fibonacci serisi 0 ve 1 ile başlayıp daha sonraki her terimi kendisinden önceki gelen 2 terimin toplamına eşit olan seridir. Örnek olarak fibonacci serisinin ilk 10 sayısını yazalım:
0 1 1 2 3 5 8 13 21 34......
şeklinde fibonacci serisi devam eder. Şimdi aklınızda otomatik olarak oluşan birkaç soruyu cevaplayalım. Fibonacci serisi ne işe yarar? Peki fibonacci serisi nerelerde var? Bu soruların cevabı için buraya tıklayın.
Gelelim c dilinde fibonacci sayılarını nasıl bulacağımıza. Bunun için birçok yok kullanılabilir. Sizler için fonksiyon kullanarak ve fonksiyon kullanmadan fibonacci sayılarını ekrana yazdıran programı yapacağız.
Örnek: Fonksiyonlar ile fibonacci serisinin istenilen elemanını bulan program.
Kaynak Kod:
#include
int fonksiyon(int x)
{
int sonuc=0;
if(x==1)
{
return 0;
}
if(x==2)
{
return 1;
}
if(x>2)
{
sonuc=fonksiyon(x-1)+fonksiyon(x-2);
}
}
int main()
{
int sayi;
printf("Bir sayi giriniz :");
scanf("%d",&sayi);
printf("Fibonacci serisinin %d. elemani %d",sayi,fonksiyon(sayi));
return 0;
}
Kod Analiz:
- Ana fonksiyon içerisinde kullanıcıdan fibonacci serisinin kaçıncı elemanını öğrenmek istiyorsa onu alıp sayı değişkenine kaydettik.
- Sayı değişkenini fonksiyon adlı fonksiyonumuza yolladık.
- Fibonacci serisinin ilk 2 elemanı 0 ve 1 olduğu için sayı 1 ise return 0 sayı 2 ise return 1 dedik.
- Sayının 2 den büyük olduğu durumlarda ise gelen sayının 1 eksiğini ve iki eksiğini fonksiyona tekrar yolladık. Bu kısmın daha açıklayıcı olması için 5 sayısı üzerinde programımızın analizini yapalım.
1) 5>2 bu yüzden sonuc=fonksiyon(4)+fonksiyon(3) oldu.
2) 4>2 ve 3>2 yeni sonucumuz fonksiyon(3)+fonksiyon(2)+fonksiyon(2)+fonksiyon(1) oldu.
3) Fonksiyon(3) terimini de açalım. Sonuc=fonksiyon(2)+fonksiyon(1)+fonksiyon(2)+fonksiyon(2)+ fonksiyon(1).
4) 0 1 1 2 3 Gördüğünüz gibi fibonacci serisinin 5. elemanı 3. Yukarıdaki eşitlikte fonksiyon(2) ler 1 fonksiyon(1) ler 0 olarak return edildiğinden sonucumuz 3 olacaktır.
- Son adımda ise sonucumuzu ekrana yazdırıp c dilinde fibonacci sayılarını bulan programımızı tamamladık.
Ekran Görüntüsü:
Örnek 2: C dilinde fonksiyon kullanılmadan fibonacci sayılarını ekrana yazan program.
Kaynak Kod:
#include
int main()
{
int sayi,sonuc,i,dizi[100];
printf("Bir sayi giriniz :");
scanf("%d",&sayi);
dizi[0]=0; dizi[1]=1;
for(i=2;i<=sayi;i++)
{
dizi[i]=dizi[i-1]+dizi[i-2];
}
for(i=0;i
printf("\n%d",dizi[i]);
}
return 0;
}
Kod Analiz:
- Kullanıcıdan serinin kaçıncı terimine kadar yazdırılacaksa o terimi alıp sayı değişkenine atadık.
- Fibonacci dizimizin ilk terimini 0 ve ikinci terimini 1 olarak kayıt ettik.
- Daha sonra ise for döngüsü içerisinde dizinin her bir terimini kendisinden önce gelen 2 terimin toplamına eşitledik.
- Son olarak ise dizinin kullanıcının girdiği kadarını ekrana yazdırdık.
Ekran Görüntüsü:
C dili dersleri serisinin bu dersinde c dilinde fibonacci serilerini bulan programın 2 varyasyonunu sizler için tanıttık.
"C Dilinde Fibonacci Sayılarını Bulan Program" adlı bu makaleyi beğendiyseniz yorum yapmayı ve paylaşmayı unutmayın.
Kaynak: Pubtekno