forked from TheAlgorithms/Python
- Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsol1.py
45 lines (37 loc) · 1.12 KB
/
sol1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
"""
Problem 15: https://projecteuler.net/problem=15
Starting in the top left corner of a 2x2 grid, and only being able to move to
the right and down, there are exactly 6 routes to the bottom right corner.
How many such routes are there through a 20x20 grid?
"""
frommathimportfactorial
defsolution(n: int=20) ->int:
"""
Returns the number of paths possible in a n x n grid starting at top left
corner going to bottom right corner and being able to move right and down
only.
>>> solution(25)
126410606437752
>>> solution(23)
8233430727600
>>> solution(20)
137846528820
>>> solution(15)
155117520
>>> solution(1)
2
"""
n=2*n# middle entry of odd rows starting at row 3 is the solution for n = 1,
# 2, 3,...
k=n//2
returnint(factorial(n) / (factorial(k) *factorial(n-k)))
if__name__=="__main__":
importsys
iflen(sys.argv) ==1:
print(solution(20))
else:
try:
n=int(sys.argv[1])
print(solution(n))
exceptValueError:
print("Invalid entry - please enter a number.")