有一分数序列:2/1 ,3/2 ,5/3 ,8/5 ,13/8 , 21/13...输出这个数列的前20项,并求出它们的和。我想知道你们具体是怎么做的,比如怎么去找这个数列的规律,像以后遇到这种类型的问题该怎么解决。

解决方案 »

  1.   

    分子是2 3 5 8 13 21 就是斐波那契数列的一部分 a(n)=a(n-1)+a(n-2)
    分母是1 2 3 5 8 13 也是斐波那契数列的一部分
      

  2.   

    分子 a=2
    分母 b=1
    项an = a/bsum=an;
    for(1..20){
    temp =a;
    a=a+b;
    b=temp;
    an=a/b;
    sum=sum+an;}寻找序列的规律。
      

  3.   

    1,2楼正确 double sum = 0.0;
    double fenmu=1.0, fenzi = 1.0, tmp;
    for(int i=0; i<n; i++)
    {
    tmp = fenzi;
    fenzi = fenmu + fenzi;
    fenmu = tmp;
    sum += fenzi / fenmu;
    }
    return sum;
      

  4.   


    public class Fibonacci {
    static int fibonacci(int n) {
    if (n <= 1)
    return 1;
    return fibonacci(n - 1) + fibonacci(n - 2); }
    public static void main(String[] args) {
    double sum = 0.0;
    for (int i = 1; i <= 20; i++) {
    double a=fibonacci(i);
    double b=fibonacci(i+1);
    sum+=b/a;
    System.out.println(b/a);
    }
    System.out.println("sum="+sum);
    }
    }
      

  5.   

    可以用递归做这个题目
    /**
     * 求数列1.1.2.3.5.8...通项(第n+2项目)是多少
     * @param n  第n+2项
     * @return
     */  
    public static int an(int n)
    {
        int a=1,b=1,temp=0;
        for(int i=0;i<n;i++)
        {
            temp=b;
            b=a+b;
            a=temp;
        }
        return b;
    }/**
     * 递归求数列2/1,3/2 5/3.的前n项和.
     * @param a 分子
     * @param b 分母
     * @return 数列和
     */
    public static double sum(double a,double b)
    {
        if(a==2)
        {
            return 2;
        }
        else
        {
            return sum(b,a-b)+a/b;
        }
    }public static void main(String[] args)
    {
        System.out.println(sum(an(20),an(19));
    }