有一组分数序列2/1 ,3/2 ,5/3 ,8/5 ,13/8 ,21/13 ...
求此数列前20项之和

解决方案 »

  1.   


    public class QuestionOf_11 {
    public static void main(String[] args) {
    int[] arr = new int[22];
    arr[0] = arr[1] = 1;
    double sum = 0.0;
    for (int i = 2; i < arr.length; i++) {
    arr[i] = arr[i - 1] + arr[i - 2];
    }

    for (int i = 1; i < arr.length - 1; i++) {
    sum += (float)arr[i + 1] / arr[i];
    }
    System.out.println(sum);
    }
    }结果:32.660260796546936
      

  2.   


    精度会丢失sum += (float)arr[i + 1] / arr[i];
      

  3.   

    稍作修改一下:public class QuestionOf_11 {
    public static void main(String[] args) {
    int[] arr = new int[22];
    arr[0] = arr[1] = 1;
    double sum = 0.0;
    for (int i = 2; i < arr.length; i++) {
    arr[i] = arr[i - 1] + arr[i - 2];
    sum += (double)arr[i]/arr[i-1];
    }
    System.out.println(sum);
    }
    }结果:32.66026079864164
      

  4.   

                    double fz=2d;
    double fm=1d;
    double sun=0.0;
    for(int i=0;i<20;i++){
    sun+=fz/fm;
    double temp=fz+fm;
    fm=fz;
    fz=temp;
    }
    System.out.println(sun);