输出这样一组数。 
 
  0,1,1,2,3,5,8 .....       第三个数等于前两个数之和。 要求 在100 之内, 用一唯数组和流程控制语句做出来。                当然你有更简单的方法做也可以。  不过只限J2SE       

解决方案 »

  1.   


    public class Test
    {
    public static void main(String[] args)
    {
    int first = 0;
    int second = 1;
    System.out.print(first + "  " + second + "  ");

    int end = first + second;
    while(end < 100)
    {
    System.out.print(end + "  ");
    first = second;
    second = end;
    end = first + second;
    }
    }
    }
    输出的结果为0  1  1  2  3  5  8  13  21  34  55  89
      

  2.   

        public static BigDecimal[]  fibonacci(int number) {
            BigDecimal[] arr = new BigDecimal[number];
            arr[0] = new BigDecimal(0);
            arr[1] = new BigDecimal(1);
            for (int i = 2; i < number; ++i) {
                arr[i] = arr[i-1].add(arr[i-2]);
            }
            return arr;
        }
      

  3.   

    1楼的代码应该是没测试过的吧,当fibonacci长度为100时用int是不够存的,哈哈
      

  4.   

    呵呵 我以为是第三个数的值不超过100. int 就足够了
    测试 还是测试了的 不知道有没有正确理解楼主的意思
      

  5.   

    public class Test { public static int fib(int n) {
    if(n < 2) return 1;
    return fib(n - 2) + fib(n - 1);
    }

    public static void main(String[] args) {
    for(int i = 0; i <= 100; i++)
    System.out.println(fib(i));
    }
    }
    这是Thinking in java上的哦,我觉得很不错。
      

  6.   

    /*code
          import java.math.BigDecimal;public class Test2 {
    public  void fib() {
    BigDecimal[] arr = new BigDecimal[102]; 
    arr[0] = new BigDecimal(0);
    arr[1] = new BigDecimal(1);
    for(int i = 0;i<100;i++) {
    arr[i+2] = arr[i].add(arr[i+1]);
    System.out.println(arr[i].toString());
    }
    }
    public static void main(String[] args) {
    Test2 t = new Test2();
    t.fib();
    }
    }
    code*/