function banana( n )
local c = 1;
if n == 0 then
return 0
elseif n == 1 then
return 1
elseif n == 2 then
return 2
end
return (banana(n - 1) + banana(n - 2)) * c;
end
for i = 1, 10 do
print(banana(i))
end
local know = {}
function banana( n )
if know[n] then
return know[n]
end
local c = 1;
if n == 0 then
know[n] = 0
return 0
elseif n == 1 then
know[n] = 1
return 1
elseif n == 2 then
know[n] = 2
return 2
end
local r = (banana(n - 1) + banana(n - 2)) * c;
know[n] = r
return r
end
for i = 1, 50 do
print(i, banana(i))
end猴子摘香蕉一次可以摘1个或2个,总共50个,问有多少种摘法?
原文:http://blog.csdn.net/gamesofsailing/article/details/44984601