Fibonacci sayılarıyla ilgili

Herkese merhaba, sınavda " Listeleri kullanarak Fibonacci sayılarını hesaplayan bir program yazınız" şeklinde bir soru karşıma çıktı soruya anlam veremediğim için direk fibonacci sayılarını bulan bir program yazdım ama tam emin olamadım burada listeleri kullanarak derken ne demek istiyor olabilir ? Bir fikri olan varsa belirte bilirse çok güzel olur
Fikir oluşturması için benim yazdığım program ;

Bence bir n (sayı adeti) girdisi isteyip o uzunlukta bir fibonacci dizisini liste olarak çıktı veren bir fonksiyon istemiş

1 Beğeni
def fib(n:int):
    
    a,b = 1,1

    fib_list = [a,b]

    for f in range(1,n+1):
        a,b = b, a+b # önce sağdaki işlemleri yapar sonra atam gerçekleşir 
        fib_list.append(b)

    return fib_list

print(fib(10)) #[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]
1 Beğeni

Galiba liste üreteçlerinden bahsediyor.

https://python-istihza.yazbel.com/listeler_ve_demetler.html#liste-uretecleri-list-comprehensions

1 Beğeni

Hangi sinav? Tum metni gorebilir miyiz?
Dogrudan alinti mi yaptin yoksa aklinda kaldigi sekliyle mi yaziyorsun?

Hazirlayan kisiye veya asistanlarindan birine sormak daha kesin sonuc getirebilir.

Bi de soru “sizce ne demek istenmis” degil miydi, cevabi nasil kod olabiliyor?

çözüm işaretlendiğine göre sıkıntı yok sanırsam @aib hocam :slightly_smiling_face:

Cozum isaretlendigine gore daha buyuk sikinti var.

Fibonacci kodu bulmak arama motoru kullanabilen birisi icin yirmi saniyelik is. Cozum bu yirmi saniyeyi harcamakken problemi ““x” derken ne demek istenmis”, “fikri olan belirtsin” seklinde ifade etmek hic bir zaman calismamasi gereken bir yontem. Bazen calisinca dogru oldugu izlenimi verdigi icin tehlikeli.

Ha; umrumda mi, cok degil. Ama programciligi zor yapan seyler bunlar.

3 Beğeni

Ben kodları bu şekilde yazdım ama hatada vermedi döndürmedide listeyi biraz oynama yapabilecek varmı

 def fibonacci(n):

    if n == 0:

        return 0

    elif n == 1:

        return 1

    else:

        return fibonacci(n-2) + fibonacci(n-1)

    def fibonacci_liste_erisim(indis):

        fibonacci_liste = []

        i = 0

        while i == indis:

            i += 1

            fibonacci_liste.append(fibonacci(i))

        return fibonacci_liste
def fibonacci(n):

    if n == 0:

        return 0

    elif n == 1:

        return 1

    else:

        return fibonacci(n-2) + fibonacci(n-1)

def fibonacci_liste_erisim(indis):

    fibonacci_liste = []

    i = 0

    while i < indis:

        i += 1

        fibonacci_liste.append(fibonacci(i))

    return fibonacci_liste

print(fibonacci_liste_erisim(10))

1 Beğeni

Ekrem Dincel teşekkür ediyorum düzelttiğin için. Ben burada while komutunda i değeri indise eşit olana kadar arttır gibi düşündüm ancak olmadı :grin: Çözdüğünüz için teşekkürler. trasgarps belki geç oldu ama çözüldü probleminiz :slight_smile: