Javaでフィボナッチ数列を達成するためにカット

まず、再帰的な方法

パブリック クラスFebonacci { 

    パブリック 静的 INT FN(INT N){
             場合(N <0 ){
                 スロー 新しい、IllegalArgumentExceptionを(N + "必须大于零" )。
            } 
            もし、(N == 0 || N == 1 ){
                 リターン 1 
            } 
            戻り FN(N-1)+ FN(N-2 )。
    } 

    パブリック 静的リスト<整数>のfoo(int型N){ 
        リスト <整数>リスト= 新規のArrayList <> ();
        以下のためのint型私= 0; I <= N。私は++ ){ 
            list.add(FN(I))。
        } 
        戻りリスト。
    } 

    パブリック 静的 ボイドメイン(文字列[]引数){ 

        System.out.printlnは(FOO( 6 ))。
    } 
}

 

第二に、ループの反復法

パブリック クラスFebonacci2 { 

    パブリック 静的 INT FN(INT N){
             場合(N <0 ){
                 スロー 新しい、IllegalArgumentExceptionを(N + "必须大于零" )。
            } 
            もし、(N == 0 || N == 1 ){
                 リターン 1 
            } 
            int型 I = 1 int型 J = 1 ;
            int型の合計= 0 ; 

        int型、K = 2、K <= N; kは++ ){ 
            合計 = I + jは、
            私は = jは、
            J = 合計。
        } 
        戻り値の和。
    } 

    パブリック 静的リスト<整数>のfoo(int型N){ 
        リスト <整数>リスト= 新規のArrayList <> ();
        以下のためにint型 i = 0; iが<= N; iは++ ){ 
            list.add(FN(I))。
        } 
        戻りリスト。
    } 

    パブリック 静的 ボイドメイン(文字列[]引数){ 

        System.out.printlnは(FOO( 2 ))。
    } 
}

 

おすすめ

転載: www.cnblogs.com/noperx/p/11317130.html