Cool, une entrée Inform7. :) Je devais juste essayer celui-ci.
Je suis sûr que c'est la solution envisagée:
R is a room.
To f (n - number): say "[n * n * real square root of n]".
Notez que cette solution ne fonctionne que si elle est compilée avec le backend Glulx, en raison de l'utilisation de la real square root of
fonction.
BTW, les guillemets doubles et les crochets ne sont en fait pas nécessaires; tout say n * n * real square root of n
fonctionnerait aussi bien. Les périodes à la fin des commandes peuvent également être omises; ou nous pourrions garder la première période et nous débarrasser des nouvelles lignes à la place. D'autres parties du code que nous pourrions supprimer incluent l'article "a" avant "room" et les espaces avant les parenthèses et après les deux points. Heureusement, puisque nous avons une paire de supports de rechange, nous pouvons toujours les utiliser pour commenter tous ces caractères supplémentaires. ;) C'est donc aussi une solution valable:
R is room.To f(n - number):say n * n * real square root of n[
" a . "
]
Pour tester cette solution de manière interactive, il est pratique d'ajouter quelque chose comme le faisceau de test suivant au code:
Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.
Après avoir compilé et exécuté le programme, vous pouvez par exemple taper f 4. f 6. f 9. f 25
à l' >
invite et recevoir quelque chose comme la sortie suivante:
Welcome
An Interactive Fiction
Release 1 / Serial number 170404 / Inform 7 build 6L38 (I6/v6.33 lib 6/12N) SD
R
>f 4. f 6. f 9. f 25
32.0
88.18164
243.0
3125.0
>
BTW, je viens de remarquer qu'Inform (ou vraisemblablement plutôt Glulx) arrondit la dernière décimale de l' f 6
erreur: la valeur correcte est beaucoup plus proche de 88,18163 que de 88,18164. Heureusement, je ne pense pas que cela affecte l'exactitude de la ou des solutions, d'autant plus que le défi spécifiait «tout mécanisme d'arrondi de votre choix». :)