Grãos

Grãos

Fácil

Introdução

Era uma vez um servo sábio que salvou a vida de um príncipe. O rei prometeu pagar o que o servo fosse capaz de 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 dobrando a cada casa seguinte.

Instruções

Calcule o número de grãos de trigo em um 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, dobrando a cada vez.

Escreva um código que calcule:

  • o número de grãos em uma determinada casa
  • o número total de grãos no tabuleiro de xadrez

Números em Euphoria

Em Euphoria, um atom pode guardar qualquer tipo de número, e o subtipo integer é reservado para números inteiros.

Em linguagens de estilo C, é possível resolver este exercício retornando um número inteiro sem sinal de 64 bits.

No entanto, os inteiros em Euphoria têm sinal e são um bit menores que a palavra da máquina, o que os torna pequenos demais para este exercício, enquanto os atoms conseguem guardar inteiros maiores, com os 64 bits de precisão necessários.

32 bits

Existe uma versão de 32 bits do Euphoria, que continua existindo para que aplicações legadas possam continuar usando dll/so de 32 bits pré-compiladas quando não há uma versão de 64 bits disponível, ou quando o wrapper para elas está cheio de deslocamentos de 32 bits fixos no código. Essa versão é totalmente inadequada para resolver esta tarefa, já que esses atoms têm apenas 53 bits de precisão. Se você estiver com dificuldade para resolver este exercício localmente, verifique se está usando uma versão de 64 bits do Euphoria.

Editar via GitHub O link abre em uma nova janela ou aba
Euphoria Exercism

Tudo pronto para começar Grãos?

Crie sua conta no Exercism para aprender e dominar Euphoria com 64 exercícios e mentoria humana de verdade, tudo de graça.