C'de Fibonacci Serisi

C'de programcıların gözdesi fibonacci serisini hem istediğiniz sayıda bulan, hem de istediğiniz sıradaki sayıyı bulan 2 farkli örnekle inceliyoruz.

C'de programcıların gözdesi fibonacci serisini hem istediğiniz sayıda bulan, hem de istediğiniz sıradaki sayıyı bulan 2 farkli örnekle inceliyoruz.

Fibonacci serisi matematikçilerin ve programcıların özellikle programcıların çok ilgisini çekmiştir.Mantık tam olarak şudur: Sıfırdan başlıyorsunuz, önce 1 ekleyip 0 1 diye yan yana iki sayınız oluyor, sonrasındaki mantık bunları toplayıp üçüncü sayıyı yazıyorsunuz: 0 1 1. Daha sonra son ikiyi tekrar toplayıp 0 1 1 2 yazıyorsunuz, bu böyle devam edip gidiyor.

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584...

Gördüğünüz gibi bayağı hızlı büyüyen bir yapısı var. Fibonacci serisi mühendislik dersi alanlar, programlamaya başlayanlar, ya da meslek liseleri öğrencilerinde çok fazla yapılması istenen, hatta bazen ödev olarak verilen bir yapıdır. Ancak İnternet üzerinde herkes birbirinden kopyalamış ve hiçbiri fibonacci serisini bulmuyor, onun yerine fibonacci'de kaçıncı sıradaki sayıyı isterseniz onu buluyor.

Şimdi istediğimiz sayıdaki fibonacci serisini bulan programımızı yazalım..


#include<stdio.h>

        int main()

        {

         int x=0,y=1,sayi,i,degisken;

         printf("kac hane istiyorsunuz?");

         scanf("%d",&sayi);



         printf("%d  ",x);

         printf("%d  ",y);

         for(i=0;i<sayi-2;++i)

         {

            printf("%d  ",x+y);

             degisken=x;

             x=y;

            y=degisken+y;



         }



         getchar();getchar();

         return 0;

        }




Ben de fibonacci serisinde kaçıncı elemanı bulamak istiyorsanız, onu veren programı da vermek istiyorum:


# include <stdio.h>



double fibo(int z);

int main()

{

double sonuc;

int sayi;

printf ("Fibonacci serisinin kacinci elemanini istiyorsunuz?");

scanf("%d",&sayi);

sonuc = fibo(sayi);

printf ("%2.lf",sonuc);

getchar();getchar();

return 0;

}



double fibo(int z)

{

double x , y;

if (z<=1)

return z;

else

{

x = fibo( (z-1) ) ;

y = fibo( (z-2) ) ;

return ( x + y);

}

}

  • Etiketler;
Emre Çamalan
1986 doğumlu olan Emre Çamalan, Atılım Üniversitesi Bilgisayar Mühendisligi 2. sınıfta burslu olarak eğitimini sürdürüyor. Programlama merakı ve tecrübesi okuldan öncelere dayananan yazar, Ankara'da yaşıyor.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

ben 10 adet fibonacci sayısı üretren program hakkında sizden fikir almak istiyorum bunu nasıl kodlara dökebiliriz yardıcı olursannız sevinirim çok acil
Dersi okumadan soru sormuşsunuz ama yinede cevaplayım.ilk örnegimize bakarsanız "kac hane istiyorsunuz?" gibi bir soru var burda 10 girince sadece 10 tane sayıyı gösteriyor. siz direk kod istiyorsanız benden yardımcı oluyum.. buyrun: buraya sıgmadıgı için 2. yoruma yazıyorum ..
Buyrun 10 sayı bulan C programı Full Kodu: #include<stdio.h> int main() { int x=0,y=1,sayi,i,degisken; printf("%d ",x); printf("%d ",y); for(i=0;i<8;++i) {printf("%d ",x+y); degisken=x; x=y; y=degisken+y;} getchar();getchar(); return 0; }
gerçekten anlatım çok iyi,inşaallah bu hayırlı katkılarınıza devam edersiniz...
Her programcının ayrı bir program yazışı var. Buda benim fibonacci serisi üreten programım; #include<stdio.h> main(){ unsigned k,d[1000],i; d[0]=d[1]=1; printf("tbu program finobacci dizisi uretirntlutfen dizinin kac sayidan olusacagini rakanla girinizn"); scanf("%d",&i); for(k=0;k<i;k++){ d[k+2]=d[k+1]+d[k]; printf("n%dn",d[k]); } getchar(); getchar(); }
otuz karakterli tek boyutlu fibonacci serisini birbirinden bağımsız 2 adet for döngüsüyle (biri algoritma diğeri çıkış işlemi için ) yazar mısınz çok acil :)
arkadaşlar size ufak bi sorum var ++1 ile 1++ arasındaki farkı küçük bi örnekle anlatabilir misiniz? şimdiden elinize fikrinize sağlık :)
"arkadaşlar size ufak bi sorum var ++1 ile 1++ arasındaki farkı küçük bi örnekle anlatabilir misiniz? şimdiden elinize fikrinize sağlık :)" önce arttır sonra kontrol et , önce kontrol et sonra arttır şeklinde düşün. for(i=0;i<10;i++) dersen önce i 10 dan küçük mü diye bakar sonra arttırır. for(i=0;i<10;++i) dersen önce i'yi arttırır sonra 10'dan küçük mü diye bakar ...
ben fibonacci serisinde eleman bulmayı falan değilde , kullanıcıdan girdiği sayıya kadar elemanların ekrana yazdırılmasını istiyorum . . .
İnt main (void) {vector <int>fibonacci (2,1); int f,limit; Do {cout《"fibinancı serisi için limit gir"; cin》limit;}while (limit <1); For (f=fibonacci.size ();1;f++){if (fibonacci [f-2]+fibonacci [f-1]<limit) Fibonacci.push_back (fibonacci [f-2]+fibonacci [f-1]); Else break;} For (f=0;fibonacci.size ();f++) Couture《f+1《":"《fibonacci [f]; return 0; }

Yukarı Git