Зернята

Зернята

Легка

Вступ

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

Вказівки

Обчисліть кількість зерен пшениці на шахівниці.

Шахівниця має 64 клітинки. На клітинці 1 лежить одне зерно, на клітинці 2 лежать два зерна, на клітинці 3 лежать чотири зерна, і так далі, щоразу кількість подвоюється.

Напишіть код, який обчислює:

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

Числа в Euphoria

У Euphoria atom може зберігати число будь-якого виду, а його підтип integer призначений для цілих чисел. Цю вправу можна розвʼязати мовами, схожими на C, повертаючи беззнакове 64-бітне ціле число.

Однак цілі числа в Euphoria є знаковими й на один біт менші за машинне слово, тож для цієї вправи вони замалі, тоді як atom може зберігати більші цілі числа з потрібною точністю у 64 біти.

32-бітна версія

32-бітна версія Euphoria й досі існує, щоб застарілі застосунки могли й надалі використовувати наперед зібрані 32-бітні dll/so, коли 64-бітної версії немає, або ж обгортка для них сповнена жорстко закодованих 32-бітних зсувів. Ця версія цілком непридатна для розвʼязання цього завдання, оскільки такі atom мають лише 53 біти точності. Якщо в нас виникають труднощі з розвʼязанням цієї вправи локально, переконаймося, що ми використовуємо 64-бітну версію Euphoria.

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

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

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