如题

解决方案 »

  1.   

    import java.util.*;public class Fibonacci {
    static ArrayList<Integer> list = new ArrayList<Integer> ();
    static int nNum;

    public static int findN(int n){
    if(n <= 0){
    System.err.println("Error!");
    return -1;
    }
    else if(n == 1)
    nNum = 0;
    else if(n == 2)
    nNum = 1;
    else
    nNum = findN(n-1) + findN(n-2);

    return nNum;
    }

    public static void main(String args[]){
    int sum = 0; for (int i=1; i<40; i++){

    if (findN(i) < 4000000){

    sum += findN(i);
        }
    }
    System.out.println(nNum);
    System.out.println("\n"+ sum);
    }
    }
    390881699227464
    至于为什么循环到40  还是手算的  根据第n项的表达式求出来的
      

  2.   

    代码里的那个ArrayList没用  开始我还想直接循环递归  太慢了  我现在还没想出怎么确定哪一项是大于4000000的