Era uma vez um servo sábio que salvou a vida de um príncipe. O rei prometeu pagar tudo o que o servo conseguisse imaginar. Sabendo que o rei adorava xadrez, o servo disse ao rei que gostaria de receber grãos de trigo. Um grão na primeira casa de um tabuleiro de xadrez, com o número de grãos a duplicar em cada casa seguinte.
Calcula o número de grãos de trigo num tabuleiro de xadrez.
Um tabuleiro de xadrez tem 64 casas. A casa 1 tem um grão, a casa 2 tem dois grãos, a casa 3 tem quatro grãos, e assim por diante, duplicando a cada casa.
Escreve código que calcule:
Em Euphoria, um atom pode conter qualquer tipo de número, com o subtipo integer reservado aos números inteiros.
É possível resolver este exercício em linguagens do tipo C devolvendo um inteiro sem sinal de 64 bits.
No entanto, os inteiros em Euphoria têm sinal e são um bit menores do que a palavra de máquina, logo demasiado pequenos para este exercício, enquanto os atoms conseguem guardar inteiros maiores com os 64 bits de precisão necessários.
Existe uma versão de 32 bits do Euphoria, que ainda existe para que as aplicações legadas possam continuar a usar dll/so de 32 bits já compiladas quando não há uma versão de 64 bits disponível, ou quando o wrapper dessas aplicações está cheio de deslocamentos de 32 bits codificados de forma fixa. Esta versão é completamente inadequada para resolver esta tarefa, visto que esses atoms só têm 53 bits de precisão. Se estás a ter dificuldade em resolver este exercício localmente, certifica-te de que estás a usar uma versão de 64 bits do Euphoria.
Inscreve-te no Exercism para aprenderes e dominares Euphoria com 64 exercícios, e mentoria humana real, tudo grátis.