arkadaşlar python da yeniyim de şu kodda herhangi bir döngü kullanmadan nasıl nasıl girdiğimiz sayı azalarak çarpılıyor. biri mantığını yazarsa sevinirim. şimdiden kolay gelsin
Merhaba,
return inner(number) #bu kısım yaratılmış olan inner fonksiyonunu tekrar çağırıyor bu şekilde her seferinde 1 azaltarak faktoriyel yapılabiliyor.
bkz: Soru Sorarken Sıkça Düşülen Hatalar #4
Ic fonksiyonun number
parametresinin (2., 3., 5. satirlar) ismini degistirmek ve/veya fonksiyonu disari almak kodun anlasilmasini kolaylastirabilir.
Ben de bu konuda takılmıştım. Umarım anlatabileceğim.
return number* inner(number -1) # inner(number-1) fonksiyonu verilen sayının bir eksiği ile tekrar çalışır , 1 sayısına kadar eksilince zaten 1 döndürülüyor if bloğu nedeniyle ve çarpım bitiyor.
return number * ( ( number -1) * inner( (number-1) -1) # verilen sayıya göre işlem 1’e eksilene kadar devam eder
yani 5’in faktöriyeli için
return 5 * ( 4* (3* (2*(1) ) # şeklinde döngüye gerek kalmadan inner(number-1 ) fonksiyonu iç içe çalışır.