第一次看到这个题虽然想到了递归,但比较麻烦。
题目序列为 1 1 2 3 5 8 13 …
public static int func1(int fnum,int snum,int stop_num,int now_num){
if(stop_num == now_num) //fnum和snum代表前两个数
return snum;
int num = fnum+snum;
now_num++;
return func1(snum,num,stop_num,now_num);
}
看了大多数的做法
public static int func2(int num){
if(num == 1 || num == 2)
return 1;
else
return func2(num-1) + func2(num-2); //分别指明前两个数
}
看明白了,从顶到底,更符合递归的方式