题目描述1:斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=36
Python测试1:递归
def Fibonacci_Recursion_tool(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return Fibonacci_Recursion_tool(n - 1) + Fibonacci_Recursion_tool(n - 2)
def Fibonacci_Recursion(n):
result_list = []
for i in range(0, n ): result_list.append(Fibonacci_Recursion_tool(i))
return result_list
if __name__ == "__main__":
data = Fibonacci_Recursion(4)
print(data)
Python测试2:循环
// An highlighted block
def Fibonacci_Loop_tool(n):
a, b = 0, 1
while n > 0:
a, b = b, a + b
n -= 1
def Fibonacci_Loop(n):
result_list = []
a, b = 0, 1
result_list.append(a)
while n > 0:
result_list.append(b)
a, b = b, a + b
n -= 1
return result_list
if __name__ == "__main__":
data = Fibonacci_Loop(4)
print(data
题目描述2:跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)
思路:青蛙跳台阶的跳法数量刚好满足斐波那契数列
Python测试2:
// An highlighted block
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
if __name__ == "__main__":
a = Solution()
print(a.jumpFloor(5))
题目描述3:变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
Python测试2:
// An highlighted block
class Solution:
def jumpFloorII(self, number):
# write code here
if number == 1:
return 1
if number ==2:
return 2
if number >= 3:
s = []
s.append(1)
s.append(2)
for i in range(2,number):
s.append(sum(s)+1)
return s[-1]
if __name__ == "__main__":
a = Solution()
print(a.jumpFloorII(5))
题目描述4:矩形覆盖
我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
Python测试:
// An highlighted block
class Solution:
def rectCover(self, number):
# write code here
if number < 1:
return 0
p =q = r = 0
for i in range(1,number+1):
if i ==1:
p =q = r = 1
elif i == 2:
q = r =2
else:
r = q+p
p =q
q= r
return r
if __name__ == "__main__":
a = Solution()
print(a.rectCover(6))
总结
斐波那契数列:
https://blog.csdn.net/qq_38441207/article/details/88649012
跳台阶:
https://blog.csdn.net/qq_38441207/article/details/88649379
变态跳台阶:
https://blog.csdn.net/qq_38441207/article/details/88650031
矩形覆盖:
https://blog.csdn.net/qq_38441207/article/details/88650996