题目内容:
泰波那契序列 Tn 定义如下:
T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2
def tribonacci(n): return res print(tribonacci(int(input())))
输入格式:
按照input()提示输入
输出格式:
整数
输入样例:
4
输出样例:
4
(解释:T_3 = 0 + 1 + 1 = 2, T_4 = 1 + 1 + 2 = 4)
时间限制:500ms内存限制:32000kb
1.递归,效率较低
# 递归
def tribonacci(n):
if n==0:
return 0
elif n==1 or n==2:
return 1
else:
return tribonacci(n-3)+tribonacci(n-2)+tribonacci(n-1)
tribonacci(30)
2. 动态规划
# 动态规划
def tribonacci(n):
list=[0,1,1]+[0]*(n-2)
for i in range(3,n+1):
list[i]=list[i-3]+list[i-2]+list[i-1]
return list[n]
tribonacci(50)
3.迭代
# 迭代
def tribonacci(n):
if n==0:
return 0
elif n==1 or n==2:
return 1
a,b,c=0,1,1
n-=2
while n:
res=a+b+c
a,b,c=b,c,res
n-=1
return res
tribonacci(50)
237

被折叠的 条评论
为什么被折叠?



