Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إضافة اللمسة الإضافية

جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 61 من 86.

challenge icon

التحدي

سهل

في الدرس السابق، قمت بإنشاء حلقة تكرارية تقوم بتشغيل FizzBuzz من 1 إلى حد معين باستخدام القواسم الثابتة 3 و 5. الآن، أضف لمسة جديدة بجعل القواسم قابلة للتخصيص!

قم بتعديل دالة fizzBuzz الخاصة بك لتقبل معاملين إضافيين للقواسم المخصصة:

  • قم بتحديث توقيع الدالة إلى: fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String
  • استخدم fizzAt بدلاً من 3 للتحقق من "Fizz"
  • استخدم buzzAt بدلاً من 5 للتحقق من "Buzz"
  • تضمن القيم الافتراضية استمرار عمل FizzBuzz الكلاسيكي عند عدم تحديد القواسم

ستتلقى المدخلات التالية:

  1. الحد الأعلى (عدد صحيح)
  2. القاسم الأول لـ "Fizz" (عدد صحيح)
  3. القاسم الثاني لـ "Buzz" (عدد صحيح)

قم بتحديث الحلقة التكرارية لتمرير هذه القواسم المخصصة إلى الدالة لكل رقم.

على سبيل المثال، إذا كانت المدخلات هي 10، و 2، و 3، فيجب أن يكون الناتج:

1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizz

في هذا المثال، يتم طباعة "Fizz" لمضاعفات 2، و "Buzz" لمضاعفات 3، و "FizzBuzz" لمضاعفات كليهما (مثل 6).

إذا كانت المدخلات هي 15، و 3، و 5 (القواسم الكلاسيكية)، فيجب أن يتطابق الناتج مع FizzBuzz الأصلي:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

جرّب بنفسك

func fizzBuzz(_ number: Int) -> String {
    if number % 3 == 0 && number % 5 == 0 {
        return "FizzBuzz"
    } else if number % 3 == 0 {
        return "Fizz"
    } else if number % 5 == 0 {
        return "Buzz"
    } else {
        return String(number)
    }
}

// Read input
let limit = Int(readLine()!)!

// Loop from 1 to limit and print the result for each number
for number in 1...limit {
    print(fizzBuzz(number))
}

جميع دروس الأساسيات