Треки
/
Pharo
Pharo
/
Вправи
/
Зернята
Зернята

Зернята

Легка

Вказівки

Обчисліть кількість зерен пшениці на шахівниці, знаючи, що кількість на кожній клітинці подвоюється.

Жив колись мудрий слуга, який урятував життя принца. Король пообіцяв дати все, що тільки слуга зможе вигадати. Знаючи, що король любить шахи, слуга сказав королю, що хотів би отримати зерна пшениці. Одне зерно на першій клітинці шахівниці, а на кожній наступній кількість зерен подвоюється.

На шахівниці 64 клітинки (де на клітинці 1 одне зерно, на клітинці 2 два зерна, і так далі).

Напишіть код, який показує:

  • скільки зерен було на заданій клітинці, і
  • загальну кількість зерен на шахівниці

Примітка

Такі типи задач (де одна відповідь залежить від попередньої) часто називають рекурсією. Існують різні способи писати рекурсивний код; варто пошукати додаткові матеріали, якщо ми з цим ще не знайомі. Pharo добре оптимізований для рекурсії, і це поширений прийом.

Примітка: в оригінальній специфікації задачі grainsCalculator викликають через #square, однак ми перейменували цей метод на #atSquare:. Ця назва більш характерна для Smalltalk і краще описує, що ми запитуємо відповідь «на конкретній клітинці».

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Pharo Exercism

Час розпочати Зернята?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Pharo, а також 50 вправ та справжнє наставництво від людей, і все це безкоштовно.