まず、再帰的な方法
パブリック クラス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 ))。 } }