Derse geri dön

Faktöriyel Hesaplama

önem: 4

Faktöriyel (https://en.wikipedia.org/wiki/Factorial) bir sayının "bir önceki" ile "bir önceki"'nin vs. vs. şeklinde 1 olana kadar çarpılmasıdır. n in faktöriyeli n! şeklinde gösterilir.

Faktöriyelin tanımı aşağıdaki gibidir:

n! = n * (n - 1) * (n - 2) * ...*1

Farklı n değerlerinin faktöriyelleri şu şekildedir:

1! = 1
2! = 2 * 1 = 2
3! = 3 * 2 * 1 = 6
4! = 4 * 3 * 2 * 1 = 24
5! = 5 * 4 * 3 * 2 * 1 = 120

Göreviniz faktoriyel(n) fonksiyonunu özçağrı kullanarak hesaplamak.

alert( faktoriyel(5) ); // 120

Not: n!, n * (n-1)! şeklinde yazılabilir. Örneğin: 3! = 3*2! = 3*2*1! = 6

Tanım olarak n! faktöriyel n * (n-1)! şeklinde çalışır.

Diğer bir deyişle faktoriyel(n) n in factorial(n-1) ile çarpılmasıdır. Sonrasında n-1 1 olana kadar basamak basamak azalır.

function faktoriyel(n) {
  return (n != 1) ? n * faktoriyel(n - 1) : 1;
}

alert( faktoriyel(5) ); // 120

Özçağrı’nın tabanı 1'dir. 0'da yapılabilir, çok önemli değildir, fakat 1 özçağrı daha yapmak gerekir.

function faktoriyel(n) {
  return n ? n * faktoriyel(n - 1) : 1;
}

alert( faktoriyel(5) ); // 120