Fibonacci on wiki
使用遞回
/*
* @parama n 第n項(n為正整數)
* @return 第n項的值
*/
function fibonacci(n)
if n <= 1
return n
return fibonacci(n-1) + fibonacci(n-1)
end
使用迭代
/*
* @parama n 第n項(n為正整數)
* @return 第n項的值
*/
function fibonacci(n)
if n <= 1
return n
int a=0, b=1,t;
for i = 2 to n do
t = a+b
a = b
b = t
end
return b
end
使用cache優化遞回
/*
* @parama n 第n項(n為正整數)
* @return 第n項的值
*/
function fibonacci(n)
static Array cache ||= {0,1}
if cache[n] not null
return cache[n]
cache[n] = fibonacci(n-1) + fibonacci(n-1)
return cache[n]
end
我在Github上使用Ruby的實作
沒有留言:
張貼留言