1. b,d 2. b 3. tak, nie, tak, tak 4. a-12 i 9 b-19 i 1 c-2,5,7,19 i 1,5,9,21 d- 19,2,7,5 i 9,21,1,5 (?) 5. a: int FWart(int n) { if (n<3) return 1 if (n>2 && n%2==0) return FWart(n-2)+2 return FWart(n-1)+FWart(n-2) } b: 20 c: F(7) / \ F(5) F(6) / \ | F(3) F(4) F(4) / \ / | / \ F(2) F(2) F(1) F(2) d: int FNWart(int n) { int *wyn=new int[n]; int wynik=0; for (int i=1; i<=n; i++) { if (i<3) wyn[i]=1; if (i>2 && i%2==0) wyn[i]=wyn[i-2]+2 if (i>2 && i%2!=0) wyn[i]=wyn[i-1]+wyn[i-2]; wynik+=wyn[i]; } return wynik; } 6: a- --- 3 b-BST 3 c- --- 3 d- --- 3
taka moja skromna propozycja, bo nic lepszego nie mogłem wymyślić o tej godzinie...
dzisiaj (rano) do zadania piątego D wymyśliłem nową funkcję - mniej pamięcio chłonną
int FNWart(int n) { int wynik=0, wyn1=0, wyn2=0; for (int i=1; i<=n; i++) { if (i<3) wynik+=1; if (i>2 && i%2==0) wynik+=wyn2+2; if (i>2 && i%2!=0) wynik+=wyn1+wyn2; wyn2=wyn1; wyn1=wynik; } return wynik; }
Ostatnio edytowany przez januszs (2011-06-19 09:03:23)
Offline
januszs napisał:
Kod:
b: 20 c: F(7) / \ F(5) F(6) / \ | F(3) F(4) F(4) / \ / | / \ F(2) F(2) F(1) F(2)
do tych odpowiedzi to bym sie klocil.
w punkcie c) pisze zeby narysowac drzewo wywolan rekurencji a nie drzewo wywolan.
do punktu b) masz podana funkcje w zadanie wiec wychodzi F(6)+F(5), a wtedy drzewo wychodzi (6/5) (taki jakby ulamek tylko bez kreski uklamkowej)
Ostatnio edytowany przez ShaguaR (2011-06-19 15:29:19)
Offline