1、题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
答案:
计算n=1,2,3,4,5个台阶的跳法会发现规律:f(n)=f(n-1)+f(n-2)
# -*- coding:utf-8 -*-
class Solution:
def jumpFloor(self, number):
# write code here
if number == 1:
return 1
elif number == 2:
return 2
else:
f1 = 1
f2 = 2
value = 0
for i in range(3,number+1):
value = f1+f2
f1 = f2
f2 = value
return value
2、题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?(和跳台阶一样的思想)
class Solution:
def rectCover(self, number):
# write code here
if number == 1:
return 1
elif number == 2:
return 2
elif number == 0:
return 0
else:
f1 = 1
f2 = 2
for i in range(3,number+1):
value = f1+f2
f1 = f2
f2 = value
return value
3、题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。。。它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
计算n=1,2,3,4,5个台阶的跳法会发现规律:f(n)=f(n-1)*2
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
# write code here
if number == 1:
return 1
elif number == 2:
return 2
else:
f = 2
for i in range(3,number+1):
value = 2 * f
f = value
return value