تحدي FizzBuzz

تعديل
نسخ الدرس
تحميل الدرس

تحدي FizzBuzz

مقدمة

FizzBuzz هو تحدٍّ برمجي كلاسيكي يُستخدم غالباً في مقابلات العمل لاختبار مهارات المبرمجين الأساسية. رغم بساطته الظاهرية، فإنه يختبر فهمك للحلقات التكرارية، والشروط، وعامل باقي القسمة.

قواعد التحدي

اطبع الأرقام من 1 إلى 100، لكن:

  • إذا كان الرقم يقبل القسمة على 3، اطبع "Fizz" بدلاً من الرقم
  • إذا كان الرقم يقبل القسمة على 5، اطبع "Buzz" بدلاً من الرقم
  • إذا كان الرقم يقبل القسمة على 3 و 5 معاً، اطبع "FizzBuzz" بدلاً من الرقم
  • إذا لم يقبل الرقم القسمة على أيٍّ منهما، اطبع الرقم نفسه

أمثلة توضيحية

الرقميقبل القسمة على 3؟يقبل القسمة على 5؟الناتج
1لالا1
2لالا2
3نعملاFizz
4لالا4
5لانعمBuzz
6نعملاFizz
10لانعمBuzz
15نعمنعمFizzBuzz
30نعمنعمFizzBuzz

المفاهيم المستخدمة

عامل باقي القسمة (%)

لمعرفة إذا كان رقم يقبل القسمة على رقم آخر، نستخدم عامل باقي القسمة %:

التحقق من القابلية للقسمة

ترتيب الشروط مهم!

تحذير مهم: يجب فحص الحالة FizzBuzz (القسمة على 3 و 5 معاً) قبل فحص Fizz أو Buzz منفردين:

استراتيجيات الحل

الطريقة الأولى: استخدام if-elsif-else

الطريقة الثانية: بناء النص تدريجياً

الطريقة الثالثة: استخدام case/when

نصيحة

لاحظ أن الرقم الذي يقبل القسمة على 3 و 5 معاً يقبل القسمة على 15 (لأن 3 × 5 = 15). لذا يمكنك استخدام n % 15 == 0 بدلاً من n % 3 == 0 && n % 5 == 0.

التمرين

حان دورك! اكتب برنامج FizzBuzz الذي:

  1. يطبع الأرقام من 1 إلى 100
  2. يطبع "Fizz" للأرقام القابلة للقسمة على 3
  3. يطبع "Buzz" للأرقام القابلة للقسمة على 5
  4. يطبع "FizzBuzz" للأرقام القابلة للقسمة على كليهما

ملاحظة: في هذا التمرين، سنختبر الأرقام من 1 إلى 15 فقط للتبسيط.

الناتج المتوقع:

حظاً موفقاً! 🎯