Je voulais une question FizzBuzz qui n'implique pas l'opérateur modulo. D'autant plus que j'interroge généralement des développeurs Web pour lesquels l'opérateur modulo ne revient pas si souvent. Et si ce n'est pas quelque chose que vous rencontrez régulièrement, c'est l'une de ces choses que vous recherchez les rares fois où vous en avez besoin.
(Certes, c'est un concept que, idéalement, vous auriez dû rencontrer dans un cours de mathématiques quelque part en cours de route, mais c'est un sujet différent.)
Donc, ce que j'ai trouvé est ce que j'appelle, sans imagination, Threes in Reverse . L'instruction est:
Écrivez un programme qui imprime, dans l'ordre inverse , tous les multiples de 3 entre 1 et 200.
Le faire dans l'ordre normal c'est facile: multipliez l'indice de boucle par 3 jusqu'à ce que vous atteigniez un nombre qui dépasse 200, puis quittez. Vous n'avez pas à vous soucier du nombre d'itérations à terminer après, vous continuez jusqu'à ce que vous atteigniez la première valeur trop élevée.
Mais pour revenir en arrière, il faut savoir par où commencer. Certains pourraient réaliser intuitivement que 198 (3 * 66) est le multiple le plus élevé de 3 et, en tant que tel, coder en dur 66 dans la boucle. D'autres pourraient utiliser une opération mathématique (division entière ou plancher () sur une division en virgule flottante de 200 et 3) pour déterminer ce nombre et, ce faisant, fournir quelque chose de plus applicable de manière générique.
Essentiellement, c'est le même genre de problème que FizzBuzz (faire une boucle sur les valeurs et les imprimer, avec une torsion). Celui-ci est un problème à résoudre qui n'utilise rien d'aussi (relativement) ésotérique que l'opération modulo.