mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-28 18:26:54 +00:00
1.7 KiB
1.7 KiB
id, title, challengeType, dashedName
| id | title | challengeType | dashedName |
|---|---|---|---|
| 69bc6cb30c1d112a2e110a09 | Challenge 252: Unique Stair Climber | 29 | challenge-252 |
--description--
Given a number of stairs, return how many distinct ways someone can climb them taking either 1 or 2 steps at a time.
--hints--
get_unique_climbs(4) should return 5.
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_unique_climbs(4), 5)`)
}})
get_unique_climbs(5) should return 8.
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_unique_climbs(5), 8)`)
}})
get_unique_climbs(10) should return 89.
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_unique_climbs(10), 89)`)
}})
get_unique_climbs(18) should return 4181.
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_unique_climbs(18), 4181)`)
}})
get_unique_climbs(29) should return 832040.
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_unique_climbs(29), 832040)`)
}})
get_unique_climbs(50) should return 20365011074.
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_unique_climbs(50), 20365011074)`)
}})
--seed--
--seed-contents--
def get_unique_climbs(steps):
return steps
--solutions--
def get_unique_climbs(steps):
if steps <= 0:
return 0
if steps == 1:
return 1
if steps == 2:
return 2
prev2, prev1 = 1, 2
for _ in range(3, steps + 1):
prev2, prev1 = prev1, prev2 + prev1
return prev1