Треки
/
Python
Python
/
Вправи
/
Краплі дощу
Краплі дощу

Краплі дощу

Легка

Вступ

Краплі дощу - трохи складніша версія завдання FizzBuzz, класичного питання на співбесіді.

Вказівки

Наше завдання - перетворити число на відповідні звуки крапель дощу.

Якщо задане число:

  • ділиться на 3, додаємо «Pling» до результату;
  • ділиться на 5, додаємо «Plang» до результату;
  • ділиться на 7, додаємо «Plong» до результату;
  • не ділиться на 3, 5 або 7, тоді результатом має бути саме це число як рядок тексту (англ. string).

Приклади

  • 28 ділиться на 7, але не на 3 і не на 5, тож результатом буде "Plong".
  • 30 ділиться на 3 і 5, але не на 7, тож результатом буде "PlingPlang".
  • 34 не ділиться ні на 3, ні на 5, ні на 7, тож результатом буде "34".
Note

Поширений спосіб перевірити, чи одне число ділиться на інше без остачі, полягає в тому, щоб порівняти остачу або модуль з нулем. Більшість мов надають оператори або функції для одного (чи обох) з них.

Як цю вправу влаштовано в Python

Цю вправу найкраще розвʼязувати за допомогою оператора % (остача від ділення) у Python, який повертає остачу від ділення додатних цілих чисел. У нього є метод-відповідник, operator.mod(), у модулі operator.

Python також пропонує додаткові методи для обчислення остачі в модулі math. math.fmod() поводиться як %, але працює з числами з плаваючою комою. math.remainder() реалізує алгоритм «кроку, найближчого до нуля» для остачі від ділення. Хоч ми й радимо ознайомитися з цими методами, жоден із них не дасть результату, що точно збігається з %, тож для цієї вправи їх не рекомендовано використовувати.

Вбудована функція divmod() також поверне остачу, що збігається з %, якщо застосувати її до двох додатних цілих чисел, але вона повертає tuple, який потрібно розпакувати.

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

Час розпочати Краплі дощу?

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

Глибоке занурення у Краплі дощу!

Розгляньмо рішення з функціональними конвеєрами, множенням матриць, попередньо обчисленими табличними рішеннями з макросом, обʼєктно-орієнтованим підходом, вражаючим використанням і Python, і TCL, а також корпоративну версію.