//PacalABC.NET 3.4.2
//Используется формула аналогичная формуле Бине для чисел
//Фибоначчи
const
index = power(33, 0.5);
a1 = power((19 + 3 * index), 1 / 3);
a2 = power((19 - 3 * index), 1 / 3);
b = power((586 + 102 * index), 1 / 3);
var
n: smallint;
function tribonacthi(n: smallint): biginteger;
begin
if (n = 1) or (n = 2) then result := 0
else
result := RoundBigInteger(3 * b * ((power((1 / 3 * (a1 + a2 + 1)), n - 1)) / (power(b, 2) - 2 * b + 4)));
end;
begin
try
n := readinteger('Введите количество элементов для вывода:');
except
on system.formatexception do
writeln('Неверный формат ввода');
end;
for var i := 1 to n do write(tribonacthi(i), ' ');
end.
Поделитесь своими знаниями, ответьте на вопрос:
Каких блоков нет в программе (два ответа)? ( ) A) Фигуры B) Движение C) Сенсоры D) Костюм E) Операторы 2. Что такое скрипт? ( ) A) Отдельные действия спрайта B) Звуки в программе C) Программа, по которой действует герой D) Персонаж в игре 3. Можно ли вставить песню, скачанную через Интернет, в качестве звука в программу? ( ) A) Да, предварительно записав её через микрофон B) Нет C) За определенную плату D) Да 4. Есть ли в Скретч встроенный графический редактор? ( ) A) Да B) Нет 5. Как по - другому называется группа блоков? ( ) A) Цветовая палитра B) Палитра блоков C) Набор блоков D) Цветовые блоки 6. Можно ли рисовать спрайт самим? ( ) A) Да B) Нет
Нужно передать водителю сумму, не меньшую суммарной стоимости всех пассажиров, передавших деньги. Очевидно, чтобы купюр было как можно меньше, сами купюры должны иметь как можно больший номинал. Кроме того, тем, кто передал 10 рублей, сдачу давать не нужно, передавшему 50 рублей – сдачей можно вернуть не более четырех десятирублевок, передавшему 100 рублей – не больше четырех 10-рублевой и 50-рублевку или не более девяти 10-рублевок.
Например, подойдет такое решение: считываем n10, n50 и n100 – количество 10-рублевок, 50-рублевок и 100-рублевок. Отдаем по четыре 10-рублевки каждому, заплатившему 50 рублей, потом тем, кто отдал 100 рублей. Оставшиеся 10-рублевки по 5 штук отдаем на сдачу со 100 рублей (таких людей k), и если кто-то остался без сдачи, пытаемся вручить им по 50 рублей.
Реализация (python 3):
n10, n50, n100 = map(int, input().split())
n10 = max(n10 - 4 * (n50 + n100), 0)
k = min((n10 + 4) // 5, n100)
n10 = max(n10 - 5 * k, 0)
n50 = max(n50 - (n100 - k), 0)
print(n10 + n50 + n100)
Пример ввода:
7 2 1
Пример вывода:
2