cache = {1:1, 2:1}
Q = function(n)
if not cache.hasIndex(n) then
q = Q(n - Q(n-1)) + Q(n - Q(n-2))
cache[n] = q
end if
return cache[n]
end function
for i in range(1,10)
print "Q(" + i + ") = " + Q(i)
end for
print "Q(1000) = " + Q(1000)