本文主要是介绍猴子摘香蕉一次可以摘1个或2个,总共50个,问有多少种摘法?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题来自知乎
等我写完发现,知乎上都比我写的好,我快哭了!!!
等我写完之后发现不就是那啥啥函数,贴上lua代码
N很大的时候,估计是抗不住了,代码还需要优化。
function banana( n )local c = 1;if n == 0 thenreturn 0elseif n == 1 thenreturn 1elseif n == 2 thenreturn 2endreturn (banana(n - 1) + banana(n - 2)) * c;
endfor i = 1, 10 doprint(banana(i))
end
local know = {}function banana( n )if know[n] thenreturn know[n]endlocal c = 1;if n == 0 thenknow[n] = 0return 0elseif n == 1 thenknow[n] = 1return 1elseif n == 2 thenknow[n] = 2return 2endlocal r = (banana(n - 1) + banana(n - 2)) * c;know[n] = rreturn r
endfor i = 1, 50 doprint(i, banana(i))
end
这篇关于猴子摘香蕉一次可以摘1个或2个,总共50个,问有多少种摘法?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!