Добавляем изюминку
Часть раздела Основы путешествия по Swift на Coddy. Урок 61 из 86.
Задание
ЛегкоВ предыдущем уроке ты создал цикл, который выполняет FizzBuzz от 1 до заданного предела, используя фиксированные делители 3 и 5. Теперь добавь изюминку: сделай делители настраиваемыми!
Измени функцию fizzBuzz, добавив два параметра для настраиваемых делителей:
- Обнови сигнатуру функции:
fizzBuzz(_ number: Int, fizzAt: Int = 3, buzzAt: Int = 5) -> String - Используй
fizzAtвместо 3 для проверки "Fizz" - Используй
buzzAtвместо 5 для проверки "Buzz" - Значения по умолчанию позволяют классическому FizzBuzz работать, если делители не указаны
На вход будут поданы следующие значения:
- Верхний предел (целое число)
- Первый делитель для "Fizz" (целое число)
- Второй делитель для "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))
}Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: простая математикаОператоры сравнения7Основы ввода-вывода
Функция printИнтерполяция строкВвод с ReadLineПреобразование типовПовторение: до 120Повторение: истина или ложь2Переменные
Let и VarАннотации типовЧислаСтрокаЛогический типСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор разделения счёта
Приветственное сообщениеВвод данных14Массивы: продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опциональные значения
Что такое опциональные значенияИзвлечение значения с помощью if letGuard letОператор объединения с nilПовторение — безопасное извлечение значения6Принятие решений
Условный оператор ifIf — ElseПовторение: простой калькуляторОператор switchSwitch с диапазонами9Циклы
Цикл for-inЦикл whileЦикл repeat-whileПрерывание циклаПереход к следующей итерацииПовторение — факториалДиапазоны в циклахВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Swift