C'era una volta un servo saggio che salvò la vita a un principe. Il re promise di pagare qualunque cosa il servo avesse potuto immaginare. Sapendo che il re amava gli scacchi, il servo disse al re che avrebbe voluto dei chicchi di grano. Un chicco sulla prima casella di una scacchiera, con il numero di chicchi che raddoppia a ogni casella successiva.
Calcola il numero di chicchi di grano su una scacchiera.
Una scacchiera ha 64 caselle. La casella 1 ha un chicco, la casella 2 ha due chicchi, la casella 3 ha quattro chicchi, e così via, raddoppiando ogni volta.
Scrivi il codice che calcola:
Questo tipo di problemi (in cui una risposta dipende da una precedente) viene spesso chiamato ricorsione. Ci sono diversi modi di scrivere la ricorsione: se non hai familiarità con questo concetto, potrebbe valere la pena documentarsi. Pharo è ben ottimizzato per la ricorsione, ed è un pattern usato comunemente.
Nota: nella specifica originale del problema, il grainsCalculator viene chiamato tramite #square, tuttavia abbiamo rinominato questo metodo in #atSquare:, che è un nome più in stile Smalltalk e descrive meglio il fatto che stai chiedendo una risposta «a una casella».
Iscriviti a Exercism per imparare e padroneggiare Pharo con 50 esercizi e il mentoring di persone reali, tutto gratis.