用递归算法实现费博那契数列的问题
问题:“一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。”
我写的程序是(如果2算第一个数的话):
public class Untitled1 {
public static void main(String[] args) {
int a=1;
int b=1;
int n=30
System.out.print("last row is:"+funcktion(a,b,n));
}
static int funcktion(int i,int j,int n){
if(n>0 && n%2==1){
return funcktion(i, j = i + j, n - 1);
}
else if(n>0 && n%2==0){
return funcktion(i = i + j, j, n - 1);
}
else
return j;
}
}
但是我感觉好像不对劲,怎么感觉我的这个不象递归呢 ?
有人能给我讲讲么?