Documente Academic
Documente Profesional
Documente Cultură
Randul 2
if (n == 0) x = 0;
3. Scrieți definiția completă a unui subprogram C++ recursiv care are 2 parametri: v, prin
care primeşte un tablou unidimensional cu maximum 100 de numere naturale mai mici
decât 1000, n, numărul efectiv de elemente ale tabloului si care returnează suma
elementelor divizibile cu 3 ale tabloului transmis ca parametru.
Restricţii şi precizări
● 0 < n ≤ 100
● numele subprogramului cerut este sum3
● parametrii sunt, în această ordine: v, n
● indicii elementelor vectorului v sunt 0, 1 ,… , n-1.
Exemplu
Dacă n=6, x= (12, 7, 6, 3, 8, 5), rezultatul va fi 21.
int sum3(int V[], int n)
{
if (n > 0) {
if (V[n] % 3 == 0)
return V[n] + sum3(V, n - 1);
else
sum3(V, n - 1);
}
else return 0;
}
Punctaj: Se acorda 1p din oficiu si câte 3p pentru fiecare problema corect rezolvata (acest punctaj va
fi împărțit astfel: 0,5p pentru antet corect, 0,2p pentru corectitudine sintactica, 1p pentru tratarea
corecta a cazului cu rezultat imediat (conditia de oprire din recursivitate), 1,2p pentru construirea
corecta a rezultatului folosind autoapeluri ale functiei (autoapeluri care conduc la oprirea din rec).