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:
Este tipo de problemas (em que uma resposta depende de uma anterior) é frequentemente designado por recursão. Há diferentes formas de implementar recursão; se não estiveres familiarizado com isto, pode valer a pena pesquisar sobre o assunto. O Pharo está bem otimizado para recursão, e este é um padrão muito utilizado.
Nota: na especificação original do problema, o grainsCalculator é chamado através de #square; no entanto, mudámos o nome deste método para #atSquare:, que é um nome mais ao estilo de Smalltalk e que descreve melhor que estás a pedir uma resposta "numa casa".
Inscreve-te no Exercism para aprenderes e dominares Pharo com 50 exercícios, e mentoria humana real, tudo grátis.