Μια φορά κι έναν καιρό ήταν ένας σοφός υπηρέτης που έσωσε τη ζωή ενός πρίγκιπα. Ο βασιλιάς υποσχέθηκε να πληρώσει ό,τι μπορούσε να ονειρευτεί ο υπηρέτης. Γνωρίζοντας ότι ο βασιλιάς αγαπούσε το σκάκι, ο υπηρέτης είπε στον βασιλιά ότι θα ήθελε να πάρει κόκκους σιταριού. Έναν κόκκο στο πρώτο τετράγωνο μιας σκακιέρας, με τον αριθμό των κόκκων να διπλασιάζεται σε κάθε επόμενο τετράγωνο.
Υπολόγισε τον αριθμό των κόκκων σιταριού σε μια σκακιέρα.
Μια σκακιέρα έχει 64 τετράγωνα. Το τετράγωνο 1 έχει έναν κόκκο, το τετράγωνο 2 έχει δύο κόκκους, το τετράγωνο 3 έχει τέσσερις κόκκους, και ούτω καθεξής, διπλασιάζοντας κάθε φορά.
Γράψε κώδικα που υπολογίζει:
Αυτού του είδους τα προβλήματα (όπου μια απάντηση εξαρτάται από μια προηγούμενη) ονομάζονται συχνά αναδρομή. Υπάρχουν διαφορετικοί τρόποι να γράψεις κώδικα με αναδρομή, και ίσως αξίζει να το ερευνήσεις αν δεν το γνωρίζεις. Το Pharo είναι καλά βελτιστοποιημένο για αναδρομή, και είναι ένα συχνά χρησιμοποιούμενο μοτίβο.
Σημείωση: στην αρχική προδιαγραφή του προβλήματος, το grainsCalculator καλείται μέσω #square, ωστόσο έχουμε μετονομάσει αυτή τη μέθοδο σε #atSquare:, που είναι ένα όνομα πιο κοντά στο Smalltalk, και περιγράφει καλύτερα ότι ζητάς μια απάντηση "σε ένα τετράγωνο".
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Pharo με 50 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.