题目 https://leetcode.com/problems/climbing-stairs/description/
if n <= 1:
return 1
if n == 2:
return 2
if n > 2:
return Solution().climbStairs(n-1) +Solution().climbStairs(n-2)
class Solution:
def climbStairs(self, n):
"""
:type n: int
:rtype: int
"""
n_1, n_2 = 1, 2
i, j = 1, 1
if n == 1:
i = 0
if n == 2:
j = 0
while ( n > 3):
# flag = j
# j = i
# i = i + flag
i = i + j
j = i - j
n-=1;
print(i,j,n)
return i * n_2 + j * n_1
def climbStairs(self, n):
a = b = 1
for _ in range(n):
a, b = b, a + b
return a
int climbStairs(int n) {
int a = 1, b = 1;
while (n--)
a = (b += a) - a;
return a;
}