1 | package qsqs.ueberdeckungen; |
2 | |
3 | public class Fibonacci { |
4 | public int[] rekursiv(int anz){ |
5 | int[] ergebnis = new int[anz]; |
6 | this.rekursiv_sub(ergebnis,anz,0); |
7 | return ergebnis; |
8 | } |
9 | private void rekursiv_sub(int[] erg, int anz, int pos){ |
10 | if(anz>0){ |
11 | if((pos < 1)){ |
12 | erg[0] = 0; |
13 | }else if((pos == 1)){ |
14 | erg[1] = 1; |
15 | }else{ |
16 | erg[pos] = erg[pos-1]+erg[pos-2]; |
17 | } |
18 | this.rekursiv_sub(erg, anz-1, pos+1); |
19 | } |
20 | } |
21 | public int[] iterativ(int anz){ |
22 | int[] ergebnis = new int[anz]; |
23 | if(anz>=0){ |
24 | ergebnis[0]=0; |
25 | } |
26 | if(anz>=1){ |
27 | ergebnis[1]=1; |
28 | } |
29 | if(anz>1){ |
30 | for(int i = anz-2;i>0;i--){ |
31 | ergebnis[anz-(i)]=ergebnis[anz-i-1]+ergebnis[anz-i-2]; |
32 | } |
33 | } |
34 | return ergebnis; |
35 | } |
36 | } |