日期:2014-05-20  浏览次数:20645 次

递归算法
前两天去面试,面试官给了条题目:

1+1+2+3+5+8+13+21+24+n

就是第一个数+第二个数等于第三个数,以此类推

求第三十个数,用递归算法实现

自己想不明白,只好到CSDN来找答案了

------解决方案--------------------
随手写写,可能有语法错误:
Java code

public static void test(int num) {
  if (num <= 2) return 1;
  else return (test(num-1) + test(num-2));
}

------解决方案--------------------
Java code

public class Main {

    public static void main(String[] args) {
        System.out.println(getN(30));
    }
    // 这叫斐波那契数列
    public static int getN(int n) {
        if (n == 1 || n == 2)
            return 1;
        else
            return getN(n - 1) + getN(n - 2);
    }

}