Visitar URL original
إحسب المضروب
نريد أن نتيح هذا المشروع المفتوح المصدر إلى كل الناس حول العالم. من فضلك ساعدنا على ترجمة محتوى هذه السلسله للغة التى تعرفها.
الرجوع الي الدرس

إحسب المضروب

الأهمية: 4

الـ مضروب هو عدد طبيعي يعتبر حاصل ضرب الرقم في نفس الرقم – 1 ثم في نفسه – 2 وهكذا حتي نصل إلي 1.

مضروب العدد n يكتب رياضياً علي هذا الشكل and so on till 1. The factorial of n is denoted as n!

يمكننا أن نعرفها بهذه الطريقة:

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

قيم مضروب أرقام مختلفة : للـ n

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

المهمة هي أن تكتب دالة factorial(n) التي تقوم بحساب n! بإستخدام الداءات المتكررة.

alert( factorial(5) ); // 120

مساعدة: n! يمكن كتابته علي هذا الشكل n * (n-1)! مثلاً: 3! = 3*2! = 3*2*1! = 6

By definition, a factorial n! can be written as n * (n-1)!.

الحل يكمن في التعريف n! يساوي n * (n-1).

بطريقة أخري, ناتج factorial(n) يمكن أن نحسبه علي هذه الطريقة n مضروب في ناتج factorial(n-1). ومناداة n-1 يمكن أن تنادي نفسها بتكرار أصغر فأصغر حتي نصل إلي1

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

alert(factorial(5)); // 120

الاساس التكراري هنا هو 1 يمكن أيضاً ان يكون 0 ولكن هذا لا يهم هذا يعطينا مناداة إضافية فقط:

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

alert(factorial(5)); // 120