سلسلة حل المشكلات (Problem Sloving) اليوم الثامن

التحدي رقم 8 لليوم رقم 8 من رمضان

اولا
كل عام و انتم بخير و اعاده الله عليكم بالمن و بالخير و البركه
لا تنشغل بالحل كثيرا كي لا تهمل عباداتك الاصليه
و لا تنسي تجديد نيتك فأن طلب العلم عباده
لا تنسوني و اخي المعتقل سياسيا من جميل دعائكم

وصف التحدي :

**مستوي التحدي : **
متوسط (برمجيا+رياضيا)

قم بكتابة دالة function تستقبل عدد صحيح من نوع integer، وتقوم الدالة function بإرجاع مضروب العدد المدخل (factorial)

ملحوظه : كلمة factorial لعدد معين يعني حاصل ضرب جميع الأعداد الصحيحة التي تكون أصغر من العدد المعطى أو تساويه .

أضغط لرؤية المخرجات المتوقعة عشان تتيست الكود بتاعك

الاختبار 1
المدخلات (Inputs)
number = 10
المخرجات (Outputs)
3628800

الاختبار 2
المدخلات (Inputs)
number = 5
المخرجات (Outputs)
120

الاختبار 3
المدخلات (Inputs)
number = 2
المخرجات (Outputs)
2

الاختبار 4
المدخلات (Inputs)
number = 4
المخرجات (Outputs)
24

حل التحدي

def factorial(number):
    the_factorial = 1
    while number  > 0:
        the_factorial *= number 
        number  -= 1
    return the_factorial

إعجابَين (2)

الحل:

def calculator (number):
    total = 1
    for i in range (1,number+1):
        total = total * i
    return total    

إعجاب واحد (1)

الحل :

def  factorial (number): return eval ("*".join([str (x) for x in list (range(number, 1, -1))]))

هكذا يستعمل :

print (factorial(10)) # الناتج : 3628800
إعجاب واحد (1)

إعجابَين (2)