2015-01-27 3 views
-2

В последнее время я обнаружил, что я не могу получить то, что я хочу иметь, как получение отрицательных чисел в факториале этот:Как получить полномасштабный рекурсивный Факториал

def rec_fac(n): 
    if n == 1: 
     return n 
    else: 
     return n*rec_fac(n-1) 

если у вас есть что-то добавить этим кодом .. Оставить комментарий =)

Заранее благодарим!

+0

Как этот вопрос отличается от [другого вопроса] (https://stackoverflow.com/questions/28005700/how-can-i-make -a-рекурсивный-факторный-без помощи-умножения)? –

+0

Мне нужны отрицательные интергеры, но это не возможно. ( –

+2

Каков ожидаемый результат 'rec_fact (-1)'? –

ответ

0

Не уверен, в чем вопрос, но факторный для натуральных чисел.

Так обращаться с отрицательными числами, сделать это:

def rec_fac(n): 
    if n < 1: 
     raise NotImplementedError('no definition for rec_fact(x) for x < 1') 
    if n == 1: 
     return n 
    else: 
     return n*rec_fac(n-1) 
+1

, но мы можем использовать, как это: = 120 rec_fac (-24): -5 * -24 = 24 rec_fac (6): -4 * 6 = 6 rec_fac (2): -3 * 2 = 2 rec_fac (2): -2 * -1 –

+0

factorial определяется для натуральных чисел, ни одна из которых не является отрицательной. –

Смежные вопросы