假如有一个数组的规律为:1,1,2,3,5,8,13,21,34......。求第30个数的值(java)

解决方案 »

  1.   

    这个叫那个什么什么数列吧.
    public class Test
    {
    int index=2;
    int i=1;
    int b=1;
    int flag;
    public static void main(String[]args)
    {
       Test t = new Test();
       t.flag=30;
       System.out.println(t.flag+"---"+t.get());
    }public int get()
    {
       int c =i+b;
       b=i;
       i=c;
       index++;
       if(index==flag)
       {  
           return c;
       }else
       {
          return get();
        }
       
    }
    }注意,别太大了,会溢出,求某个数还好说,要是求多少位以前的和那就麻烦了,网上的,多用百度
      

  2.   

    斐波那契数列public class fbnq
    {
      public static void main(String[]args)
      {
        System.out.println(fb(30));
      } 
      public int fb(int a)
      {
        if(a==1&&a==2){
          return 1;
        }else{
          return fb(a-1)+fb(a-2);
        }
      }
    }
      

  3.   

    斐波那契数列、兔子数列
    短路与写错了,应该是短路或,自己汗一个!public class fbnq
    {
      public static void main(String[]args)
      {
        System.out.println(fb(30));
      } 
      public int fb(int a)
      {
        if(a==1||a==2)
        {
          return 1;
        }else{
          return fb(a-1)+fb(a-2);
        }
      }
    }
      

  4.   

    C写的兔子数列,也称斐波那契数列,一个递归就OK了。
    (斐波那契数列的M应该设置为2)
    #include<stdio.h>
    #include <stdlib.h>int f(int m ,int d)
    {
    if(m>=d) 
    return 1; 
    else 
    return f(m,d-1)+f(m,d-m);
    }void main()
    {
    int num;
    num=f(2,6);
    printf("The are %d pair of rabbit finnaly.",num);
    }
      

  5.   

    public class i { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int[] i6=new int[30];
    i6[0]=1;
    i6[1]=1;
    for(int i4=2;i4<30;i4++){
    i6[i4]=i6[i4-1]+i6[i4-2];
    System.out.println("第"+(i4+1)+"个数值为:"+i6[i4]);

    }
    }答案是 第3个数值为:2
    第4个数值为:3
    第5个数值为:5
    第6个数值为:8
    第7个数值为:13
    第8个数值为:21
    第9个数值为:34
    第10个数值为:55
    第11个数值为:89
    第12个数值为:144
    第13个数值为:233
    第14个数值为:377
    第15个数值为:610
    第16个数值为:987
    第17个数值为:1597
    第18个数值为:2584
    第19个数值为:4181
    第20个数值为:6765
    第21个数值为:10946
    第22个数值为:17711
    第23个数值为:28657
    第24个数值为:46368
    第25个数值为:75025
    第26个数值为:121393
    第27个数值为:196418
    第28个数值为:317811
    第29个数值为:514229
    第30个数值为:832040
      

  6.   

    public class Test {
    public static void main(String[] args) {
    int [] j = new int[31];
    j[0] = 0;
    j[1] = 1;
    for(int i = 2 ; i <= 30 ; i++){
    j[i] = j[i - 1] + j[i -2]; 
    System.out.println("第" + i + "个数为 : " + j[i]);
    }
    }
    }