maximum recursion depth exceeded in comparison
combinations, factorial, python, recursion
Solution
Try to replace:
def fact(n):
return 1 if(n == 1) else n * fact(n - 1)
to:
def fact(n):
return 1 if(n <= 1) else n * fact(n - 1)
Because if you pass 2 identical numbers, you would try to compute `fact(0)` (which would call `fact(-1)` and `fact(-2)`, etc until the maximum recursion depth error).
Problem
I wrote this piece of code to compute the number of combinations: ``` def fact(n): return 1 if(n == 1) else n * fact(n - 1) def combinations(n,k): return fact(n)/((fact(n - k) * fact(k))) while(True): print(combinations(int(input()), int(input()))) ``` The factorial function seems to work fine. But why does it give me a maximum recursion depth exceeded in comparison error when I try to find the combinations of two numbers? Is there something wrong with the factorial function, since that's where the error seems to be originating from? This was the error I got: builtins.RuntimeError: maximum recursion depth exceeded in comparison