İlk 20 fibonacci sayısını toplayan recursive(öz yinelemeli) bir fonksiyon yazınız

merhabalar;
Herkeze iyi çalışmalar. Kendimi geliştirmek üzere buradayım lakin bi yere kadar gelip yapamadığım bir soru yardımcı olursanız sevinirim. iyi calışmalar…

Merhaba,

Nereye kadar geldiniz, kod paylaşabilir misiniz? Ayrıca forumda fibonacci ile ilgili bir arama yaptınız mı?

kod’un sadece yapısına kadar gelebildim
def faktoriyel,if , return yapılarını yazdım ufak bi örnek yaptım ama bu biraz zor kaçtı

Tamam, bir arama yapın isterseniz forumda, bir şeyler bulabileceğinizden eminim.

arama yaptım ,lakin benim konum ile alakalı bişey bulamadım.eğer konu ile ilgili bilginiz varsa yardımcı olur musunuz? yani bazı kod lar verilmiş ama ben onlardan kendi sorumu tamamlayamam

Mesela şu mesaja baktınız mı?

1 Beğeni

baktım.teşekkür ederim. forum yorumlarından buldum ilk 10 sayı olsada devamını yapmaya çalışacagım. teşekkür ederim

while döngüsü ile döngüyü 20 ye kadar çevirelim. her toplanan sayıyı da bir önceki sayıya atayalım. fonksiyon olarak yazmadım fakat ucuncusayi kısmına return atarak fonksiyona alabilirsin

ilksayi = 0
ikincisayi = 1
bitir = 0
while bitir < 20:
  ucuncusayi = ilksayi + ikincisayi
  ilksayi = ikincisayi
  ikincisayi = ucuncusayi
  bitir += 1
  print(bitir,".sayı değeri = ",ucuncusayi)

Kodunu yazmadım ama aklıma şöyle bir algoritma geldi.
Öncelikle dizi=[1,1] şeklinde bir dizi tanımlayalım ve index=0 olarak bir değişken tanımlayalım
Daha sonra 20 kere dönecek şekilde bir döngü yazalım.
Her döngüde dizinin index’inci ve (index+1)'inci elemanlarını toplayalım ve bu değeri diziye yeni eleman olarak ekleyelim. Sonrasında index değerini 1 arttıralım. Eğer yanlışım yoksa işe yaramalı ilk aklıma geleni yazdım.

GİRDİĞİN ARALIĞA KADAR LİSTELİYOR.
FİBO

lambda self, fs=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]: 0 if len(fs) == 0 else fs[0] + self(fs[1:])