Problema
Para cada inteiro de 1 até limit, use Fizz para múltiplos de 3, Buzz para múltiplos de 5 e FizzBuzz para múltiplos de ambos. Caso contrário, use o número escrito como texto. Retorne os elementos na ordem, em vez de imprimi-los.
Implemente fizz_buzz(limit).
Entrada
limit: O último inteiro a ser incluído.
Saída
Retorne uma lista de strings, uma para cada inteiro de 1 até limit.
Restrições
0 ≤ limit ≤ 10.000. Um limit igual a 0 produz uma lista vazia.
Exemplos
Entrada:
limit = 5
Saída esperada:
expected = ["1", "2", "Fizz", "4", "Buzz"]
Entrada:
long long limit = 5;
Saída esperada:
std::vector<std::string> expected = {"1", "2", "Fizz", "4", "Buzz"};
Entrada:
long limit = 5;
Saída esperada:
string[] expected = new string[] {"1", "2", "Fizz", "4", "Buzz"};
Explicação
3 é divisível por 3 e 5 é divisível por 5. Os outros elementos mantêm seu número.
Entrada:
limit = 0
Saída esperada:
expected = []
Entrada:
long long limit = 0;
Saída esperada:
std::vector<std::string> expected = {};
Entrada:
long limit = 0;
Saída esperada:
string[] expected = new string[] {};
Explicação
Não há inteiros de 1 até 0, então a lista é vazia.
Como abordar
Tente sozinho primeiro e depois abra uma dica de cada vez.
Dica 1
Cada posição depende só da divisibilidade do inteiro atual por 3 e 5.
Dica 2
Monte a lista de resultado em ordem, verificando as duas condições de divisibilidade para cada número.
Dica 3
Trate bem o limite inferior: se o limite for 0, a resposta é uma lista vazia.
Complexidade esperada
O(n) tempo, O(n) espaço extra
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.