متجر الكتب

متجر الكتب

متوسط

التعليمات

سعيًا إلى تشجيع مزيد من مبيعات الكتب المختلفة من سلسلة كتب شهيرة مكوّنة من 5 كتب، قرّر متجر كتب أن يقدّم خصومات على شراء عدة كتب معًا.

تبلغ تكلفة نسخة واحدة من أي من هذه الكتب الخمسة $8.

أما إذا اشتريت كتابين مختلفين، فتحصل على خصم 5% على هذين الكتابين.

وإذا اشتريت 3 كتب مختلفة، فتحصل على خصم 10%.

وإذا اشتريت 4 كتب مختلفة، فتحصل على خصم 20%.

وإذا اشتريت الكتب الخمسة كلها، فتحصل على خصم 25%.

لاحظ أنك إذا اشتريت أربعة كتب، 3 منها بعناوين مختلفة، فتحصل على خصم 10% على 3 كتب منها تشكّل مجموعة، بينما يبقى الكتاب الرابع بسعر $8.

مهمتك هي كتابة كود لحساب سعر أي سلة تسوق يمكن تصورها (تحتوي فقط على كتب من سلسلة الكتب نفسها)، مع منح أكبر خصم ممكن.

على سبيل المثال، كم تبلغ تكلفة سلة الكتب هذه؟

  • نسختان من الكتاب الأول
  • نسختان من الكتاب الثاني
  • نسختان من الكتاب الثالث
  • نسخة واحدة من الكتاب الرابع
  • نسخة واحدة من الكتاب الخامس

إحدى طرق تجميع هذه الكتب الثمانية هي:

  • مجموعة واحدة من 5 كتب (الأول، الثاني، الثالث، الرابع، الخامس)
  • مجموعة واحدة من 3 كتب (الأول، الثاني، الثالث)

سيكون المجموع:

  • 5 كتب بخصم 25%
  • 3 كتب بخصم 10%

ما ينتج عنه:

  • 5 × (100% - 25%) × $8 = 5 × $6.00 = $30.00، بالإضافة إلى
  • 3 × (100% - 10%) × $8 = 3 × $7.20 = $21.60

أي ما يساوي $51.60.

لكن هناك طريقة مختلفة لتجميع هذه الكتب الثمانية:

  • مجموعة واحدة من 4 كتب (الأول، الثاني، الثالث، الرابع)
  • مجموعة واحدة من 4 كتب (الأول، الثاني، الثالث، الخامس)

سيكون المجموع:

  • 4 كتب بخصم 20%
  • 4 كتب بخصم 20%

ما ينتج عنه:

  • 4 × (100% - 20%) × $8 = 4 × $6.40 = $25.60، بالإضافة إلى
  • 4 × (100% - 20%) × $8 = 4 × $6.40 = $25.60

أي ما يساوي $51.20.

و $51.20 هو السعر مع أكبر خصم ممكن.

التنفيذ

عرّف دالة باسم cost تحسب التكلفة لمصفوفة معطاة من الكتب بناءً على خصومات محددة.

ستُرجع cost التكلفة الإجمالية (بعد الخصومات) بالسنت. على سبيل المثال، تكلفة كتاب واحد هي 800 سنت، أي ما يعادل $8.00. لا يلزم في هذا التمرين سوى حسابات الأعداد الصحيحة.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
JavaScript Exercism

مستعد لبدء متجر الكتب؟

سجّل في Exercism لتتعلّم وتتقن JavaScript عبر 37 مفهومًا159 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.