def iterative_trib(n):
if n <= 1:
return 1
elif n == 2:
return 2
else:
a, b, c = 1, 1, 2
while n > 2:
a, b, c = b, c, a+b+c
n = n - 1
return c
def trib(n):
if n <= 1:
return 1
elif n == 2:
return 2
else:
return trib(n-1) + trib(n-2) + trib(n-3)
print("Recursive")
for i in range(23, 30):
print(f"t({i})={trib(i)}" + (", " if i != 29 else "\n"), end="")
print("Iterative")
for i in range(30, 37):
print(f"t({i})={iterative_trib(i)}" + (", " if i != 36 else "\n"), end="")
ZGVmIGl0ZXJhdGl2ZV90cmliKG4pOgoJaWYgbiA8PSAxOgoJCXJldHVybiAxCgllbGlmIG4gPT0gMjoKCQlyZXR1cm4gMgoJZWxzZToKCQlhLCBiLCBjID0gMSwgMSwgMgoJCXdoaWxlIG4gPiAyOgoJCQlhLCBiLCBjID0gYiwgYywgYStiK2MKCQkJbiA9IG4gLSAxCgkJcmV0dXJuIGMKCmRlZiB0cmliKG4pOgoJaWYgbiA8PSAxOgoJCXJldHVybiAxCgllbGlmIG4gPT0gMjoKCQlyZXR1cm4gMgoJZWxzZToKCQlyZXR1cm4gdHJpYihuLTEpICsgdHJpYihuLTIpICsgdHJpYihuLTMpCgkKcHJpbnQoIlJlY3Vyc2l2ZSIpCmZvciBpIGluIHJhbmdlKDIzLCAzMCk6CglwcmludChmInQoe2l9KT17dHJpYihpKX0iICsgKCIsICIgaWYgaSAhPSAyOSBlbHNlICJcbiIpLCBlbmQ9IiIpCgpwcmludCgiSXRlcmF0aXZlIikKZm9yIGkgaW4gcmFuZ2UoMzAsIDM3KToKCXByaW50KGYidCh7aX0pPXtpdGVyYXRpdmVfdHJpYihpKX0iICsgKCIsICIgaWYgaSAhPSAzNiBlbHNlICJcbiIpLCBlbmQ9IiIp
Recursive
t(23)=755476, t(24)=1389537, t(25)=2555757, t(26)=4700770, t(27)=8646064, t(28)=15902591, t(29)=29249425
Iterative
t(30)=53798080, t(31)=98950096, t(32)=181997601, t(33)=334745777, t(34)=615693474, t(35)=1132436852, t(36)=2082876103