这是leetcode的一个问题。 你正在爬楼梯。它需要n步才能达到顶峰。
每次你可以爬1或2步。您可以通过多少不同的方式登顶?
注意:给定n将是一个正整数。 为什么它表明了?
显示公司标签 显示标签
class Solution(object):
def climbStairs(self, n):
twostairtimes = math.floor(n/2)
result = 0
twostairresult = 0
while (twostairtimes>=0):
onestairtimes = n - (2 * twostairtimes)
if onestairtimes == 0:
result+=1
elif twostairtimes ==0:
result+=1
else:
result += self.jiecheng(n)/(self.jiecheng(twostairtimes)*self.jiecheng(onestairtimes))
result += 1
twostairtimes=twostairtimes-1
return result
def jiecheng(self,n):
c = 1
for i in range(n+1):
c *= i
return c
答案 0 :(得分:0)
如果您确定n
是integer
,则会像这样:
range(int(n+1))
答案 1 :(得分:0)
将twostairtimes = math.floor(n/2)
更改为twostairtimes = n//2
或升级到第3章.CG问题已解决