diff --git a/4_9_Exercises/Question 3.py b/4_9_Exercises/Question 3.py new file mode 100644 index 0000000000000000000000000000000000000000..a2bd84b1f91c9fff7300693899e860e61ac7ec78 --- /dev/null +++ b/4_9_Exercises/Question 3.py @@ -0,0 +1,20 @@ +def nsp(x, y, current=(0, 0)): + if current is None: + return 0 + if current == (x, y): + return 1 + else: + next_corner = new_index(x, y, current) + # uses helper function to find the next corner + return nsp(x, y, next_corner[0]) + nsp(x, y, next_corner[1]) + pass + + +def new_index(x, y, current): + # Helper function to find the possible next states, reduced clutter + if current[0] < x and current[1] < y: + return (current[0], current[1] + 1), (current[0] + 1, current[1]) + if current[0] >= x and current[1] < y: + return (current[0], current[1] + 1), None + if current[0] < x and current[1] >= y: + return (current[0] + 1, current[1]), None