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

Tunahan Mert07

Decapat
Katılım
24 Eylül 2021
Mesajlar
376
Çözümler
1
Yer
Antalya/Alanya
Daha fazla  
Cinsiyet
Erkek
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:
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
 
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.
 
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)
 
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.
 
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.
 

Yeni konular

Geri
Yukarı