1,1,2,5,8,13.....请问这个数列第30项是什么?
用java实现

解决方案 »

  1.   

    思路就是
    n=(n-1)+(n-2)
    对于n的界限的判断什么的自己考虑一下建议楼主自己的动手试试
      

  2.   

    楼主的题目是不是少了一个数字3,否则没有规律可言,无法得出第30项数据,正确的题目应该是:
    1,1,2,3,5,8,13.....请问这个数列第30项是什么? 用java实现很明显这是一个Fibonacci数列,代码如下:
    package com.pnft.fibonacci;public class Fibonacci
    {
    static int calculateFibonacci(int n)
    {
    if(n < 3)
    {
    return 1;
    }
    else
    {
    return calculateFibonacci(n-1) + calculateFibonacci(n-2);
    }
    }
    public static void main(String[] args)
    {
    System.out.println(calculateFibonacci(30));
    }
    }
    运行程序得到的结果为:
    832040
    这就是第30项的数据。
      

  3.   

    Fibonacci数列本质上就是:一个数字等于它前面两项的和,比如2 = 1 + 1; 3 = 1 + 2;5 = 2 + 3;...
    关于Fibonacci数列有很多很有意思的事情,其中一个就是当n->无穷大时,F(n-1)/F(n) = 0.618... 黄金分割,这是可以证明的:
    假定Fibonacci数列有n项
    F(1),F(2),F(3),F(4),F(5),F(6)...,F(n-2),F(n-1),F(n)
    根据Fibonacci数列的定义,我们可以知道:
    F(n) = F(n-1) + F(n-2),
    现在我们来算算F(n)/F(n-1):
    F(n)/F(n-1) = [F(n-1) + F(n-2)]/F(n-1) = 1 + F(n-2)/F(n-1),即
    F(n)/F(n-1) = 1 + F(n-2)/F(n-1)       (1)很显然,当n->无穷大的时候,F(n)/F(n-1) = F(n-1)/F(n-2),不妨令F(n)/F(n-1) = x,那么当n->无穷大的时候,(1)式将变成:
    x = 1 + 1/x        (2)
    解(2),得到:
    x1 = [1 + sqrt(5)]/2
    x2 = [1 - sqrt(5)]/2
    Fibonacci两项相比,不可能出现复数,因此x2没有意义,舍去之。那么最后得到x = [1 + sqrt(5)]/2,即
    F(n)/F(n-1) = [1 + sqrt(5)]/2 => F(n-1)/F(n) = 2/[1 + sqrt(5)] = 0.618
    得证
      

  4.   

    (1)n<3----n=1;
    (2)n>=3---n=(n-1)+(n-2);
    用递归,4楼的方法可基本实现功能吧。