(Джерело: http://www.olymp.vinnica.ua/index_ua.php?lng=ua&cid=118)
Приклад.
Введення: 10 2 5 10
Виведення: 40
Free Pascal:
Var N, L, T, M : Integer;
Begin
Read (N, L, T, M);
Write (N*Round(Exp((M div T)*Ln(L))));
End.
C++:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n, l, t, m;
cin >> n >> l >> t >> m;
cout << n*pow((float)l,m/t);
}
Задача. Буратіно має лише N золотих монет, які він отримав від Карабаса-Барабаса. Кіт та лисиця розповіли йому, що закопавши гроші на Полі чудес, за кожен урожай можна збирати їх у L разів більше. Для вирощування урожаю необхідно Т повних годин. Скільки монет зможе зібрати Буратіно у разі удачі за M годин (M>=T)? Ті монети, які він закопав – зникають. Кожен раз Буратіно закопує всі наявні монети.
Технічні умови. Програма Buratino читає з клавітатури числа N, L, T, M одним рядком через пропуск. Програма виводить на екран єдине число число - шукану величину. Всі числа не більші 10000.
Введення: 10 2 5 10
Виведення: 40
Розв'язання.
Через кожні T годин кількість монет N збільшиться в L разів. Отже, через M годин кількість монет N збільшиться в L - M\T разів (\ - ділення націло). І буде дорівнювати: N*LM\T, де \ - ділення націло.
Запишемо алгоритми мовами програмування.Free Pascal:
Var N, L, T, M : Integer;
Begin
Read (N, L, T, M);
Write (N*Round(Exp((M div T)*Ln(L))));
End.
C++:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n, l, t, m;
cin >> n >> l >> t >> m;
cout << n*pow((float)l,m/t);
}