[Тестовое 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