Menu
Coddy logo textTech

הוספת הטוויסט

חלק מהיחידה יסודות במסלול ה-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))
}

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Swift אונליין