Advertisement

Python çift olan fibonacci sayılarını alma

Tunahan Mert07

Picopat
Katılım
24 Eylül 2021
Mesajlar
196
Çözümler
1
Yer
Antalya/Alanya
Merhaba. Ben fibonacci sayılarının sadece ekrana çift sayılarını bastıran bir py programı istiyorum fakat def fonksiyonu falan kullanmadan yapmak istiyorum.

Kod:
"""
Fibonacci Serisi yeni bir sayıyı önceki iki sayının toplamı şeklinde oluşturur.

1,1,2,3,5,8,13,21,34....................
"""

a = 1 # a ya b'nin eski değerini
b = 1 # b ye a + b değerini vermem gerekli.

fibonacci = [a,b]

for i in range(20): # 20 tane fibonacci sayısı üret.
 print('a:{} \t b:{}'.format(a,b))
 a,b = b,a+b

 fibonacci.append(b)
print(fibonacci)
 
Son düzenleyen: Moderatör:

CCXXVII

Picopat
Katılım
5 Eylül 2021
Mesajlar
81
Yer
Muğla
fibonacci içinde ilk başta 1,1 var. çift sayıları istiyorsan farklı bir array açmalısın çünkü en başta 1,1 var zaten. if koşulu içinde b değerin 2 ye tam bölünebiliyorsa fibonacci.append(b)'yi yeni oluşturduğun array'e eklemelisin. python'ı unuttum malesef umarım yardımcı olabilmişimdir
 
KS
KS
Tunahan Mert07

Tunahan Mert07

Picopat
Katılım
24 Eylül 2021
Mesajlar
196
Çözümler
1
Yer
Antalya/Alanya
fibonacci içinde ilk başta 1,1 var. çift sayıları istiyorsan farklı bir array açmalısın çünkü en başta 1,1 var zaten. if koşulu içinde b değerin 2 ye tam bölünebiliyorsa fibonacci.append(b)'yi yeni oluşturduğun array'e eklemelisin. python'ı unuttum malesef umarım yardımcı olabilmişimdir
Dediğinizi önceden uygulamıştım fakat a ve b'nin değeri 1 olduğu için ekranda sadece 1 gözüküyor.Fakat 2 den başlatırsam bir sorun olmuyor.
 

The Anorak

Gigapat
Katılım
2 Mart 2014
Mesajlar
6.334
Çözümler
110
Fonksiyonlardan korkmayın. İşler Fonksiyonlar girdiği zaman çok daha kolaylaşır.

Python:
from functools import lru_cache

@lru_cache
def fibo(n):
    if n < 2:
        return 1
    return fibo(n - 2) + fibo(n - 1)

fiboArr = list(map(fibo, range(20)))
even = list(filter(lambda p: p % 2 == 0, fiboArr))
print(even)
 
KS
KS
Tunahan Mert07

Tunahan Mert07

Picopat
Katılım
24 Eylül 2021
Mesajlar
196
Çözümler
1
Yer
Antalya/Alanya
Fonksiyonlardan korkmayın. İşler fonksiyonlar girdiği zaman çok daha kolaylaşır.

Python:
from functools import lru_cache.

@lru_cache
def fibo(n):
 if n < 2:
 return 1
 return fibo(n - 2) + fibo(n - 1)

fiboArr = list(map(fibo, range(20)))
even = list(filter(lambda p: p % 2 == 0, fiboArr))
print(even)

Konuyu bilmediğim için o şekilde dedim :D teşekkürler.
 

Blacksidemre

Kilopat
Katılım
8 Eylül 2018
Mesajlar
5.428
Makaleler
1
Çözümler
27
Yer
Crimson
Python:
n= int(input("sayi girişi yapınız:"))
a=1
b=1
c=0

while c<n:
    if c%2==0:
        print(b)
    c=a+b
    a=b
    b=c

İstediğiniz bir aralığı verebilirsiniz. Fibonacci dizisinin çift terimlerini verecektir.
 
Yukarı