首页 > 试题广场 >

递归实现1,1,2,3,5,8,….第30个数是多少?

[问答题]
递归实现1,1,2,3,5,8,….第30个数是多少?
推荐
public static int Foo(int i) 
{ 
    if (i <= 0) 
        return 0; 
    else if(i > 0 && i <= 2) 
        return 1; 
    else 
        return Foo(i -1) + Foo(i - 2); 
}  
int i= Foo(30);
System.out.println(i); 
编辑于 2015-01-27 15:16:23 回复(0)
我也以为是直接写答案了,,,心想这么大数,我怎么算 = =
裴波那契数列,除了前两项外,任意一项等于其前两项的和
发表于 2015-06-03 23:34:32 回复(0)
这题。。。还以为是要直接给出结果呢。。斐波那契都考烂了。。。。
发表于 2015-06-03 10:15:34 回复(0)
public class text32{
    public static void main(String[] args){
        Fibonacci num = new Fibonacci();
        System.out.println(num.math(30));
    }
}

class Fibonacci{
    private int num;
    public int math(int a){
        if(a == 1)return 1;
        else if(a ==2)return 1;
        else{
            return math(a-1)+math(a-2);
        }
    }
}
发表于 2022-01-23 15:43:01 回复(1)
int fib( int count )
{   
    if( count <= 2 )  return 1  ;
    else return fib(count-2) + fib( count-1 ) ;
          
}


发表于 2015-06-03 12:36:54 回复(0)
规律:后一项等于前两项之和
发表于 2015-01-26 20:03:17 回复(0)
答:这是裴波那契数列,除了前两项外,任意一项等于其前两项的和
int fun(int i)
 {
 if(i<=0)
 return 0;
 Else if(i<=2)
 return 1;
 else 
 return fun(i-1)+fun(i-2);
 }
 void main()
 {
 printf(“%d\n”,fun(30));
 }

编辑于 2015-01-26 15:18:20 回复(0)