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))
}

Все уроки раздела Основы