Źródło: Arkusze CKE
Który fragment kodu ilustruje zastosowanie rekurencji?
Blok 1:
int fn(int a) {
if(a==1) return 1;
return fn(a-1)+2;
}
Blok 2:
int fn(int a) {
if(a==1) return 1;
return (a-1)+2;
}
Blok 3:
int fn(int a) {
if(a==1) return 1;
return fun(a-1)+2;
}
Blok 4:
int fn(int a) {
if(a==1) return 1;
return 2;
}
Warianty odpowiedzi
-
A
Blok 2
-
B
Blok 3
-
C
Blok 4
-
D
Blok 1
Wyjaśnienie
Rekurencja w programowaniu to sytuacja, w której funkcja wewnątrz swojej własnej definicji wywołuje samą siebie.
W Bloku 1 funkcja nazywa się fn i dokładnie wewnątrz swojego ciała wywołuje fn(a-1). To klasyczny przykład rekurencji bezpośredniej.
Pozostałe bloki tego nie robią. Blok 2 wykonuje jedynie operację matematyczną, Blok 3 wywołuje zupełnie inną funkcję o nazwie fun, a Blok 4 zwraca po prostu stałą liczbę bez wywoływania jakiejkolwiek podprogramu.