FizzBuzz – это популярный тест по программированию, который используется на технических собеседованиях для оценки навыков кандидата по решению проблем. Для этого требуется написать программу, которая печатает числа от 1 до заданного предела, заменяя числа, кратные 3, на «Fizz», числа, кратные 5, на «Buzz», а числа, кратные 3 и 5, на «FizzBuzz». В этой статье мы рассмотрим несколько методов решения проблемы FizzBuzz с помощью Swift, мощного и интуитивно понятного языка программирования, разработанного Apple.
Метод 1: базовый подход с условными операторами
func fizzBuzz(_ n: Int) {
for i in 1...n {
if i % 3 == 0 && i % 5 == 0 {
print("FizzBuzz")
} else if i % 3 == 0 {
print("Fizz")
} else if i % 5 == 0 {
print("Buzz")
} else {
print(i)
}
}
}
Метод 2: Тернарный операторный подход
func fizzBuzz(_ n: Int) {
for i in 1...n {
let result = (i % 3 == 0 && i % 5 == 0) ? "FizzBuzz" :
(i % 3 == 0) ? "Fizz" :
(i % 5 == 0) ? "Buzz" :
"\(i)"
print(result)
}
}
Метод 3: подход с использованием оператора Switch
func fizzBuzz(_ n: Int) {
for i in 1...n {
switch (i % 3 == 0, i % 5 == 0) {
case (true, true):
print("FizzBuzz")
case (true, false):
print("Fizz")
case (false, true):
print("Buzz")
default:
print(i)
}
}
}
Метод 4: Функциональный подход с использованием карты
func fizzBuzz(_ n: Int) {
let fizzBuzzArray = (1...n).map { i in
if i % 3 == 0 && i % 5 == 0 {
return "FizzBuzz"
} else if i % 3 == 0 {
return "Fizz"
} else if i % 5 == 0 {
return "Buzz"
} else {
return "\(i)"
}
}
print(fizzBuzzArray.joined(separator: "\n"))
}
Метод 5. Функциональный подход с использованием сокращения
func fizzBuzz(_ n: Int) {
let fizzBuzzString = (1...n).reduce("") { result, i in
let current = (i % 3 == 0 && i % 5 == 0) ? "FizzBuzz" :
(i % 3 == 0) ? "Fizz" :
(i % 5 == 0) ? "Buzz" :
"\(i)"
return result + current + "\n"
}
print(fizzBuzzString)
}
В этой статье мы рассмотрели несколько методов решения проблемы FizzBuzz в Swift. От базового подхода с использованием условных операторов до функциональных подходов с использованием карты и сокращения — мы предоставили ряд решений, отвечающих различным стилям и предпочтениям кодирования. Поняв и внедрив эти методы, вы сможете улучшить свои навыки решения проблем и укрепить свои знания программирования на Swift.
Не забывайте практиковать эти методы и экспериментировать с их вариациями, чтобы еще больше расширить свои способности в программировании. Приятного кодирования!