回复 第3楼 的 xoxo:其实所有语言都一样的, 关键是怎样把一个问题model成recursive的形式. R语言中, 比如写fibonacci
<br />
fibo <-<br />
function(n){<br />
if(n <= 2) return(1);<br />
return(fibo(n-1) + fibo(n-2));<br />
}<br />
<br />
for(i in 1:10) print(fibo(i));<br />
recursive algorithm的基本结构是base + progression. base是不用算直接得结果的那几个数, 比如这里第一和第二个fibonacci数不用算, 直接返回1就行. progression是后一个数在前一个数已经得到的基础上如何得到的方法. 你可以把整个程序想成是对一般数学归纳法的编程实现. base就是n=1的情况, progression就是给定n, 求n+1的方法.
</p>