• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 10. Функции и рекурсия

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Система кэширования»

В компании разрабатывают программное обеспечение для научных вычислений. Многие операции выполняются повторно с одинаковыми параметрами, что замедляет работу системы. Необходимо создать класс-функцию CachedCalculator, который будет кэшировать результаты математических операций.
Класс должен поддерживать четыре операции: сложение (add), вычитание (sub), умножение (mul) и деление (div). При повторном вызове операции с теми же параметрами результат должен браться из кэша. Класс должен вести статистику количества выполненных операций и количества обращений к кэшу.
После выполнения всех операций программа должна вывести результаты всех вычислений в отсортированном порядке, а затем статистику использования кэша.

Формат ввода

Первая строка содержит число n - количество операций. Следующие n строк содержат операции в формате: "операция число1 число2", где операция - одна из add, sub, mul, div

Формат Вывода

Результаты всех операций в отсортированном порядке, каждый на новой строке. Затем строка со статистикой в формате: "Operations: X, Cache hits: Y", где X - общее количество операций, Y - количество обращений к кэшу

Пример

Ввод

6
add 5 3
mul 2 4
add 5 3
div 10 2
mul 2 4
sub 7 1

Вывод

5.0
6.0
8.0
8.0
8.0
8.0
Operations: 6, Cache hits: 2

Подсказка

Тут подсказки не будет, решай сам!

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!