Добавляем изюминку
Часть раздела Основы путешествия по 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Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод