CMU Coding Bootcamp
at main 690 B view raw
1from math import sqrt, ceil 2 3 4def numberOfSteps(bricks: int) -> int: 5 """ 6 Given a number of bricks return how many steps would be required to use them all given that: 7 S(0) = 0 8 S(n) = S(n-1) + n 9 Formula: `S=(-1+sqrt(1+8*n))/2` 10 """ 11 return ceil((-1 + sqrt(1 + 8 * bricks)) / 2) 12 13 14print("Testing numberOfSteps()...", end="") 15assert numberOfSteps(0) == 0 16assert numberOfSteps(1) == 1 17assert numberOfSteps(2) == 2 18assert numberOfSteps(3) == 2 19assert numberOfSteps(4) == 3 20assert numberOfSteps(6) == 3 21assert numberOfSteps(7) == 4 22assert numberOfSteps(10) == 4 23assert numberOfSteps(11) == 5 24assert numberOfSteps(55) == 10 25assert numberOfSteps(56) == 11 26print("Passed!")