Ruby ile Terminal üzerinde bir sayının faktöriyeli nasıl bulunur ?

Ruby programlama dili hakkında bilgiler, kaynaklar, dökümanlar ve örneklerin bulunduğu bölümümüz.
Cevapla
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 957
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 516 kez
Teşekkür edildi: 357 kez
İletişim:

Ruby ile Terminal üzerinde bir sayının faktöriyeli nasıl bulunur ?

Mesaj gönderen admin »

Ruby programlama ile n sayısının faktöriyeli nasıl bulunur?

Matematikten biraz anlayan herkes bilir . Faktöriyel tanım olarak;
1’den n’ye kadar olan veya n’den geriye doğru 1’e kadar olan doğal sayıların çarpımı n! (n faktöriyel) olarak gösterilir.
n!=1.2.3.4……(n-1).n

n!=n.(n-1)…..3.2.1

0!=1

1!=1

2!=1.2=2

3!=1.2.3=6

4!=1.2.3.4=24

5!=1.2.3.4.5=120
Formül :

Kod: Tümünü seç

n! = 1                (ne zaman n==0 olursa)
   = n * (n-1)!
Buna göre kaynak kodumuz :

Kod: Tümünü seç

def fact(n)
  if n == 0
    1
  else
    n * fact(n-1)
  end
end

puts fact(ARGV[0].to_i)
Yukarıdaki şekilde tasarlarsak ve dosyaadı.rb uzantısıyla boş bir dosya içerisine kaydedersek ardından terminalde çalıştırmak için ;

Kod: Tümünü seç

ruby dosyaadı.rb 5
dosyaadı.rb yi ve faktöriyelini bulacağınız sayıyı değiştirebilirsiniz.

Ekran çıktısı :

Resim
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.

Etiketler:
trasmus
ARGE Ekip Üyesi
ARGE Ekip Üyesi
Mesajlar: 35
Kayıt: 28 Eyl 2023 14:47
Teşekkür etti: 10 kez
Teşekkür edildi: 37 kez

Re: Ruby ile Terminal üzerinde bir sayının faktöriyeli nasıl bulunur ?

Mesaj gönderen trasmus »

- Ruby'e şöyle bir baktım da Python gibi yüksek düzey dil sözdizimini kullanıyormuş. Python bilen birinin Ruby'de kod yazmaya alışması en fazla bir gününü alır. Ufak tefek değişiklikler var ama genelde mantığı aynı gibi.

- Yukarıdaki faktöryel hesaplayan kodun alternatifini (ve bence benim kodum daha okunaklı :) ) aşağıya yazıyorum:

Kod: Tümünü seç

puts "Faktöryel hesabı için sayı giriniz:"
sayi = gets.chomp.to_i
output, dongu = sayi, sayi


while dongu > 1 
  dongu -=1
  output *= dongu
end
puts "#{sayi} sayısının faktöryeli: #{output}"
puts "Çıkmak için herhangi bir tuşa basın."
gets
Resim
Cevapla

“Ruby Programlama” sayfasına dön