Problème
Pour chaque entier de 1 à limit inclus, utilisez Fizz pour les multiples de 3, Buzz pour les multiples de 5, et FizzBuzz pour les multiples des deux. Sinon, utilisez le nombre écrit en texte. Retournez les éléments dans l'ordre au lieu de les afficher.
Implémentez fizz_buzz(limit).
Entrée
limit : Le dernier entier à inclure.
Sortie
Retournez une liste de chaînes de caractères, une pour chaque entier de 1 à limit inclus.
Contraintes
0 ≤ limit ≤ 10 000. Une valeur de limit égale à 0 produit une liste vide.
Exemples
Entrée :
limit = 5
Sortie attendue :
expected = ["1", "2", "Fizz", "4", "Buzz"]
Entrée :
long long limit = 5;
Sortie attendue :
std::vector<std::string> expected = {"1", "2", "Fizz", "4", "Buzz"};
Entrée :
long limit = 5;
Sortie attendue :
string[] expected = new string[] {"1", "2", "Fizz", "4", "Buzz"};
Explication
3 est divisible par 3 et 5 est divisible par 5. Les autres éléments gardent leur nombre.
Entrée :
limit = 0
Sortie attendue :
expected = []
Entrée :
long long limit = 0;
Sortie attendue :
std::vector<std::string> expected = {};
Entrée :
long limit = 0;
Sortie attendue :
string[] expected = new string[] {};
Explication
Il n'y a pas d'entiers de 1 à 0, donc la liste est vide.
Comment l'aborder
Essayez d'abord seul, puis ouvrez les indices un par un.
Indice 1
Chaque position dépend seulement de la divisibilité du nombre courant par 3 et 5.
Indice 2
Construis la liste résultat dans l’ordre en vérifiant les deux conditions de divisibilité pour chaque nombre.
Indice 3
Gère bien la borne inférieure : si la limite est 0, la réponse est une liste vide.
Complexité attendue
temps O(n), espace supplémentaire O(n)
Références
Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.