Legal, uma entrada do Inform7. :) Eu apenas tive que tentar este.
Tenho certeza de que esta é a solução pretendida:
R is a room.
To f (n - number): say "[n * n * real square root of n]".
Observe que esta solução só funciona se compilada com o back-end Glulx, devido ao uso da real square root of
função.
Entre, aspas duplas e colchetes são realmente desnecessários; só say n * n * real square root of n
iria funcionar tão bem. Os períodos no final dos comandos também poderiam ser omitidos; ou podemos manter o primeiro período e nos livrar das novas linhas. Outras partes do código que poderíamos aparar incluem o artigo "a" antes da "sala" e os espaços antes dos parênteses e depois dos dois pontos. Felizmente, como temos um par de colchetes sobressalentes, sempre podemos usá-los para comentar todos esses caracteres extras. ;) Portanto, também é uma solução válida:
R is room.To f(n - number):say n * n * real square root of n[
" a . "
]
Para testar essa solução interativamente, é conveniente anexar algo como o seguinte equipamento de teste ao código:
Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.
Após compilar e executar o programa, você pode digitar, por exemplo, f 4. f 6. f 9. f 25
no >
prompt e receber algo como a seguinte saída:
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, acabei de notar que o Inform (ou presumivelmente, o Glulx) arredonda a última casa decimal do f 6
erro: o valor correto está muito mais próximo de 88.18163 do que de 88.18164. Felizmente, acho que isso não afeta a correção das soluções, principalmente porque o desafio especificava "qualquer mecanismo de arredondamento de sua escolha". :)