Загрузка...

[Тестовое Google] Почти факториал

  • Нормальная
  • Не решено

Условие

Мы все знаем, что такое факториал. Факториал числа n - это произведение всех целых положительных чисел, меньших или равных n.

Например, факториал 10 = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1.

Это всем понятно и все, вероятно, множества раз написали функцию вычисления факториала.

Но, давайте создадим почти факториал. Будем использовать целые числа в порядке убывания, заменяя операции умножения фиксированным чередованием операций с умножением *, делением /, сложением + и вычитанием - в этом порядке.

Например, почти факториал 10 = 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1.

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

Кроме того, деление, которое мы используем, - это деление с округлением вниз, то есть 10 * 9 / 8 = 90 / 8 = 11.

Задача

Напишите функцию almost_factorial, которая принимает целое число n и возвращает число - "почти" факториал n.

Пример

almost_factorial(4) # 7 # Пояснение: 7 = 4 * 3 / 2 + 1 almost_factorial(10) # 12 # Пояснение: 12 = 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1
3 / 164