-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproblem12.py
More file actions
27 lines (23 loc) · 762 Bytes
/
Copy pathproblem12.py
File metadata and controls
27 lines (23 loc) · 762 Bytes
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
# This problem was asked by Amazon.
# There exists a staircase with N steps,
# and you can climb up either 1 or 2 steps
# at a time. Given N, write a function that
# returns the number of unique ways you can climb
# the staircase. The order of the steps matters.
# For example, if N is 4, then there are 5 unique ways:
# 1, 1, 1, 1
# 2, 1, 1
# 1, 2, 1
# 1, 1, 2
# 2, 2
# What if, instead of being able to climb 1 or 2 steps at a time, you could climb any number from a set of positive integers X? For example, if X = {1, 3, 5}, you could climb 1, 3, or 5 steps at a time.
def climb(N):
if N == 1:
return 1
if N == 2:
return 2
return climb(N-1) + climb(N-2)
def main():
print(climb(5))
if __name__ == '__main__':
main()