Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # https://challengerocket.com/step-counting
- class App():
- def factorial(self, n):
- result = 1
- while n > 1:
- result *= n
- n -= 1
- return result
- def newton(self, n, k):
- return self.factorial(n)/(self.factorial(k)*(self.factorial(n-k)))
- def newtons_count(self, steps):
- return ((steps//2) - 1) if steps > 3 else 0
- def solve(self, steps):
- result = steps
- k = self.newtons_count(steps)
- if k:
- newton_n = steps - 2
- newton_k = 2
- for i in range(k):
- result += self.newton(newton_n, newton_k)
- newton_n -= 1
- newton_k += 1
- return int(result)
- if __name__ == "__main__":
- app = App()
- print(app.solve(1))
- print(app.solve(2))
- print(app.solve(3))
- print(app.solve(4))
- print(app.solve(5))
- print(app.solve(6))
- print(app.solve(7))
- print(app.solve(8))
- print(app.solve(9))
- print(app.solve(10))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement