Треки
/
Go
Go
/
Вправи
/
Відсотки - це цікаво
Відсотки - це цікаво

Відсотки - це цікаво

Навчальна вправа

Вступ

Число з плаваючою комою - це число, яке має нуль або більше цифр після десяткового розділювача. Наприклад: -2.4, 0.1, 3.14, 5., 16.984025 і 1024.0.

Різні типи чисел з плаваючою комою можуть зберігати різну кількість цифр після десяткового розділювача. Це називається точністю.

У Go є два типи чисел з плаваючою комою:

  • float32: 32 біти (точність ~6-9 цифр).
  • float64: 64 біти (точність ~15-17 цифр). Це типовий тип для чисел з плаваючою комою.

Як бачимо, обидва типи можуть зберігати різну кількість цифр. Це означає, що якщо ми спробуємо зберегти число π у float32, збережуться лише перші 6-9 цифр (а остання цифра буде округлена).

Типово Go використовує float64 для чисел з плаваючою комою, якщо тільки це число не:

  1. присвоєно змінній типу float32, або
  2. повернуто з функції з типом повернення float32, або
  3. передано як аргумент у функцію float32().

Пакет math містить багато корисних математичних функцій.

Вказівки

У цій вправі ми працюватимемо з ощадними рахунками. Щороку баланс нашого ощадного рахунку оновлюється відповідно до його відсоткової ставки. Відсоткова ставка, яку дає нам банк, залежить від суми грошей на рахунку (його балансу):

  • 3.213% для балансу, меншого за 0 доларів (баланс стає ще більш відʼємним).
  • 0.5% для балансу, більшого або рівного 0 доларів, і меншого за 1000 доларів.
  • 1.621% для балансу, більшого або рівного 1000 доларів, і меншого за 5000 доларів.
  • 2.475% для балансу, більшого або рівного 5000 доларів.

На нас чекають чотири завдання, кожне з яких стосуватиметься балансу та його відсоткової ставки.

1. Обчисліть відсоткову ставку

Реалізуйте функцію InterestRate(), щоб обчислити відсоткову ставку за вказаним балансом:

InterestRate(200.75)
// => 0.5

Зауважте, що повернене значення має тип float32.

2. Обчисліть відсотки

Реалізуйте функцію Interest(), щоб обчислити відсотки за вказаним балансом:

Interest(200.75)
// => 1.003750

Зауважте, що повернене значення має тип float64.

3. Обчисліть річне оновлення балансу

Реалізуйте функцію AnnualBalanceUpdate(), щоб обчислити річне оновлення балансу з урахуванням відсоткової ставки:

AnnualBalanceUpdate(200.75)
// => 201.75375

Зауважте, що повернене значення має тип float64.

4. Обчисліть кількість років до досягнення бажаного балансу

Реалізуйте функцію YearsBeforeDesiredBalance(), щоб обчислити мінімальну кількість років, потрібних для досягнення бажаного балансу, зважаючи на те, що щороку до балансу додаються відсотки. Це означає, що баланс за один рік становить: початковий баланс + відсотки за початковий баланс. Баланс за другий рік становить: баланс за один рік + відсотки за баланс за один рік. І так далі, доки баланс поточного року не стане більшим або рівним цільовому балансу.

balance := 200.75
targetBalance := 214.88
YearsBeforeDesiredBalance(balance, targetBalance)
// => 14

Зауважте, що повернене значення має тип int.

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

Час розпочати Відсотки - це цікаво?

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