Найти тему
Журнал «Код»

Задача про банковскую комиссию

Основано на реальных событиях

Пятница — время дурных математических задач.

Один вебмастер сделал сайт для зарубежной компании и получил гонорар в долларах. Но когда сумма поступила, в банковском отчёте он увидел такую же сумму, но в рублях. Когда он обратился в банк с вопросом, почему так, ему объяснили:

«Банк конвертирует доллары в рубли по текущему курсу банка — 48,5 рубля за доллар. После этого берёт комиссию за перевод — 3% от суммы, но не менее 15 000 рублей. Так как перевод был хоть и в долларах, но на рублёвую карточку, банк взял минимальную рублёвую комиссию. А ещё банк не может взять комиссию больше, чем сам перевод».

Вопрос: сколько заплатила зарубежная компания вебмастеру в долларах, если он получил столько же, но рублей (например, если сайт стоил 200 долларов, то вебмастер получил на счёт 200 рублей)? Чтобы было проще, можно пренебречь копейками и центами.

Решение

Чтобы не усложнять решение и не строить сложные формулы и уравнения, используем силу машин: напишем код, который сам проверит все условия и подберёт подходящий ответ.

Сначала опишем все переменные, которые нам понадобятся для решения:

Теперь сделаем функцию, которая имитирует перевод из-за рубежа: она пересчитывает всё в рубли, считает комиссию и возвращает сумму в рублях, которая останется после перевода:

Последнее, что осталось сделать, — проверить, равны ли числа в рублях и долларах. По условию мы можем отбросить копейки и центы — используем для этого функцию toFixed(0). Она откинет всё, что после точки, а результат вернёт в виде строки.

Чтобы увидеть результат, используем команду console.log (income.toFixed (1)); — она выведет сумму в долларах с точностью до одного знака после запятой. Если эту сумму отправить переводом, то по условиям банка на счету мы получим ту же самую сумму в рублях (без учёта копеек и центов, конечно).

Теперь соберём код в одно целое и запустим в консоли:

-2

Получается, что разработка сайта стоила 315,8 доллара. Иногда проще написать код, чем поразмышлять логически.

Всё, идите уже на выходные, хватит. Давайте. До встречи в понедельник!