Python ile Bir Sayının Faktöriyelini Hesaplama

Bu yazımızda, Python programlama dili ile, bir sayının faktöriyelini hesaplayan alternatifli bir şekilde örnek kodlar yazacağız.

Python ile Bir Sayının Faktöriyelini Hesaplama

1’den başlayarak belirli bir sayma sayısına kadar olan sayıların çarpımına o sayının faktöriyeli denir. Faktöriyel olan sayı sağında ünlem işareti ile gösterilir. Örneğin, 5! = 1*2*3*4*5 = 120 gibi. Ayrıca belirtmek isterim ki, negatif sayıların faktöriyeli olmaz. Bu bilgiler eşiğinde sorumuzu alternatif metotlarla beraber çözelim:

  1. İlk çözümümüz için while döngüsü ve if-else ifadelerinden yararlandık. Bakınız:

Bu kod parçası, kullanıcının girdiği sayının faktöriyelini hesaplar. Kullanıcı negatif bir sayı girerse, program bir hata mesajı yazdırır. Kullanıcı pozitif bir sayı girerse, while döngüsü, 1’den başlayarak belirtilen sayıya kadar olan tüm sayıları çarparak faktöriyel hesaplar. Kodu çalıştırmak için: Trinket


  1. İkinci çözümümüz de ise if-else ile for döngüsü ile kullanılmıştır:

Bu kod parçası, kullanıcının girdiği sayının faktöriyelini for döngüsü kullanarak hesaplar. Eğer kullanıcı negatif bir sayı girerse, program bir hata mesajı yazdırır. Kodu çalıştırmak için: Trinket


  1. Üçüncü çözümümüzde ise Python ile faktöriyel hesaplama fonksiyon kullanılarak yapılmıştır:

Yukarıdaki kod, hesapla_faktoriyel adında bir fonksiyon tanımlar. Bu fonksiyon, parametre olarak bir number alır ve bu sayının faktöriyelini hesaplar. Eğer number negatifse, fonksiyon None döndürür. Program, kullanıcının girdiği sayının faktöriyelini hesaplamak için bu fonksiyonu kullanır. Eğer kullanıcı negatif bir sayı girerse, “Negatif sayıların faktöriyeli olmaz!” yazdırır. Konu çalıştırmak için: Trinket


  1. Yine fonksiyon kullanarak ama daha güvenli bir çözüm yapacağız:

Bu kod parçası, memoization tekniği ve kullanıcı girdilerini bir araya getirerek bir sayının faktöriyelini hesaplar. Memoization, daha önce hesaplanmış sonuçları saklayarak aynı hesaplamaların tekrar tekrar yapılmasını önler. Aynı zamanda, bu kod parçası kullanıcının birden fazla sayının faktöriyelini hesaplamasına ve aynı sayının faktöriyelini birden fazla kez sormasına izin verir.

hide_the_cache fonksiyonu, cache adında bir sözlük ve asked_numbers adında bir küme oluşturur. Bu fonksiyon, factorial fonksiyonunu tanımlar ve factorial fonksiyonunu ve asked_numbers kümesini döndürür. factorial fonksiyonu, parametre olarak bir x alır ve bu sayının faktöriyelini hesaplar. Eğer x daha önce hesaplanmışsa, fonksiyon sonucu cache sözlüğünden döndürür. Eğer x daha önce hesaplanmamışsa, fonksiyon sonucu hesaplar, cache sözlüğüne kaydeder ve sonucu döndürür.

Ana program, factorial fonksiyonunu ve asked_numbers kümesini hide_the_cache fonksiyonundan alır ve bir döngü içinde kullanıcıdan sayılar alır. Eğer kullanıcı -1 girerse, program sonlanır. Eğer kullanıcı -1’den küçük bir sayı girerse, program bir hata mesajı yazdırır. Eğer kullanıcı daha önce girdiği bir sayıyı tekrar girerse, program bu sayının daha önce sorulduğunu belirtir ve sonucu hemen döndürür. Eğer kullanıcı yeni bir sayı girerse, program factorial fonksiyonunu çağırır, sonucu yazdırır ve sayıyı asked_numbers kümesine ekler.

Bu yaklaşım, factorial fonksiyonunun aynı sayı için birden fazla kez çalıştırılmasını önler ve hesaplamanın daha hızlı yapılmasını sağlar. Bu nedenle, bu kod parçası oldukça verimli bir şekilde çalışır ve kullanıcıya hızlı yanıtlar sağlar. Kodu çalıştırmak için: Trinket

İlgili Makaleler

3 Yorum

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu