n=100;
h(n)=h(n-1)+h(n-2);
0+1+1+2+3+5+8+13......

解决方案 »

  1.   


    public class Add { public static int NUMBER = 100;

    public static void main(String[] args){
    System.out.println(add(Add.NUMBER));
    }

    static double add(int num){
    double[] nums = new double[num];
    double sum = 1;
    nums[0] = 0;
    nums[1] = 1;
    for(int i = 2; i < num; i++){
    nums[i] = nums[i - 1] + nums[i - 2];
    sum += nums[i];
    }
    return sum;
    }
    }
      

  2.   

    递归式和递归入口都有了public int getH(int n) {
    if (n == 0) {
    return 0;
    }
    else if (n == 1) {
    return 1;
    }
    return getH(n - 1) + getH(n - 2);
    }
      

  3.   

    修改一下LS的,对于LS的测试来说,是没问题的
    不过如果求h(0)或h(1)时,即public static int NUMBER = 0; // or 1时就出错了。
    public class Add {    public static int NUMBER = 100;
        
        public static void main(String[] args){
            System.out.println(add(Add.NUMBER));
        }
        
        static double add(int num){
            if (num<=0) return 0;   //here
            if (num == 1) return 1; //here        double[] nums = new double[num];
            double sum = 1;
            nums[0] = 0;
            nums[1] = 1;
            for(int i = 2; i < num; i++){
                nums[i] = nums[i - 1] + nums[i - 2];
                sum += nums[i];
            }
            return sum;
        }
    }