Fizz Buzz

https://leetcode.com/problems/fizz-buzz/description/Easy

Условие

Напиши программу, которая выводит числа от 1 до n. Но для чисел, кратных 3, выведи "Fizz" вместо числа, для чисел, кратных 5, выведи "Buzz". Для чисел, кратных и 3, и 5, выведи "FizzBuzz".

Примеры

Input: n = 3

Output: n = 3
Input: n = 5

Output: [“1”, “2”, “Fizz”, “4”, “Buzz”]
Input: n = 15

Output: [“1”, “2”, “Fizz”, “4”, “Buzz”, “Fizz”, “7”, “8”, “Fizz”, “Buzz”, “11”, “Fizz”, “13”, “14”, “FizzBuzz”]

Решение

fun fizzBuzz(n: Int): List<String> {
    val result = mutableListOf<String>()

    for (i in 1..n) {
        when {
            i % 3 == 0 && i % 5 == 0 -> result.add("FizzBuzz")  // Число кратно и 3, и 5
            i % 3 == 0 -> result.add("Fizz")  // Число кратно 3
            i % 5 == 0 -> result.add("Buzz")  // Число кратно 5
            else -> result.add(i.toString())  // Число не кратно ни 3, ни 5
        }
    }

    return result
}

Временная сложность

O(n), где n — входное значение, так как мы генерируем n элементов.

Пространственная сложность

O(n), так как результат хранит n строк.