题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
上次变态跳台阶那题里提到过这种情况,思路依然相同。
只是用递归python会超时,改用循环。
# -*- coding:utf-8 -*-
class Solution:
def jumpFloor(self, number):
# write code here
if number <3:
return number
c=3;a=1;b=2
for i in range(3,number+1):
c = a+b;
a,b = b,c
return c
# -*- coding:utf-8 -*-
class Solution:
def jumpFloor(self, number):
# write code here
a = 1;b = 1
for i in range(number):
a,b = b,a+b
return a
注意这种赋值
a,b = b,a+b
是先计算值,再赋值。如有a=1 b=1
i=0时,先计算b=1 a+b=2 再赋值给a=1 b=2
i=1时,先计算b=2,a+b=2 再赋值给a=2 b=3
与另一种赋值的区别
a
=
b
b
=
a
+
b
i= 0时,a=1 b=2
i= 1时,a=2,b=a+b=2+2=4