Uzun zaman önce bu LINK‘te C# ile Fibonacci dizisi ile ilgili bir yazı paylaşmış, eş zamanlı olarak bir çok detay da paylaşmıştım. Eğer özel olarak ilginiz varsa orada da farklı bilgiler edinebilirsiniz. Project Euler sitesinde denk gelince basit algoritma antrenmanı olduğu için paylaşmakta istedim. Bu ve her seviyede problemleri çözmekten hoşlanıyorsanız Project Euler sitesini incelemenizi, üye olmanızı şiddetle tavsiye ederim.
Project Euler sitenin temel prensibi sonuçların paylaşılmaması yönünde ama Fibonacci Dizisi yazmak en az Hello World kadar ünlü olduğu için ve geçmişte C# ‘ta da burada eşini yazdığım için bir zararı olmayacağına kanaat getirdim. Belki staj, ödev yapan kardeşlerime faydası dokunur.
İstenen, 4milyon’dan küçük tüm çift sayılı Fibonacci Dizisi sayılarının toplamının kaç olduğu;
# -*- coding: utf-8 -*- """ @author: Hakan Müştak @2022 #hmustak @mail: hakan[@]mustak.org @web: mustak.org @social: twitter.com/hmustak """ fibonacci = [] # fibonacci sayıların tutulacağı dizi cift_toplam = 0 # çift olanların toplamının tutulacağı değişken # kaç Fibonacci Dizisi döndürelim : 35 ile buldum ben... for i in range(0, 35): # Soru 0 ve 1'i verdiği için aynen ekliyoruz. if i == 0: fibonacci.append(0) elif i == 1: fibonacci.append(1) else: # Fibonacci Dizisi kendisinden önceki 2 rakamın toplamıdır fibTop = (fibonacci[i - 1] + fibonacci[i - 2]) # Toplam 4M'den küçük olduğu sürece toplamaya devam if (fibTop < 4_000_000): # Çift olanları toplayalım if (fibTop) % 2 == 0: cift_toplam += fibTop # Fibonacci Dizisini oluşturalım fibonacci.append(fibTop) # ve sonuçları ekrana basalım print(fibonacci) print(cift_toplam)
Hakan Müştak
@2022
Bir yanıt yazın