Dans cette variante du casse - tête à quatre fours, vous devez utiliser jusqu'à x
x's
(et aucun autre nombre) et un ensemble défini d'opérations pour atteindre chaque nombre de 0 à 100. Si x = 4
alors vous pouvez utiliser jusqu'à quatre 4s
et cette question devient les quatre fours classiques puzzle (sauf que vous pouvez utiliser jusqu'à quatre 4 plutôt que d'avoir à en utiliser exactement quatre). Nous supposons 1 < x <= 9
.
Dans cette version, seuls les opérateurs suivants sont autorisés:
- Addition (
+
), Soustraction (-
), Multiplication (*
), Division (/
). Notez que c'est une vraie division, alors5/2 = 2.5
. - Exponentiation (par exemple 4 ^ 4) car cela n'impliquerait aucun symbole supplémentaire s'il était écrit normalement à la main.
- Vous pouvez créer de nouveaux entiers en concaténant
xs
. Par exemple, vous pouvez faire des entiers4, 44, 444, 4444
.
Vous pouvez également utiliser des parenthèses pour regrouper des nombres simplement afin de contrôler l'ordre d'évaluation des opérateurs. Vous ne pouvez pas par exemple combiner des parenthèses avec une concaténation comme dans (4/4)(4/4) = (1)(1) = 11
.
Aucun autre symbole ne peut être utilisé et l'ordre des opérations standard s'applique.
Votre programme doit générer, étant donné un x
dans la plage définie et un n
entre 0
et 100
inclus, une solution correcte pour cette entrée si elle existe. Sinon, votre code doit générer quelque chose pour indiquer qu'aucune telle solution n'existe.
Vous devez pouvoir exécuter votre soumission jusqu'à son terme sur votre machine pour toutes les valeurs d'entrée de x
et n
dans la plage autorisée. C'est le golf de code, donc la solution la plus courte l'emporte.
Cette ancienne question connexe utilise plus d'opérateurs (et seulement 4s) et donc tous les nombres de 0 à 100 sont résolubles, ce qui ne sera pas vrai pour ce défi.
Entrée et sortie
Votre code prend deux entiers x
et n
en entrée et doit générer une solution (ou une indication qu'il n'y a pas de solution) dans n'importe quel format lisible par l'homme que vous jugez pratique. L'entrée 4 6
signifierait par exemple "En utilisant jusqu'à quatre 4, faites le nombre 6". Donc, si l'entrée est 4 6
la sortie pourrait l'être (4+4)/4+4
.