Menu
CoddyTech

Добавляем изюминку

Часть раздела Основы путешествия по 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