Model oficial 2026 · recursivitate
Funcția int f(int s,int d,int v[]){ if(s==d) if(v[d]==2*d) return 1; else return 0; else return f(s,(s+d)/2,v)+f(1+(s+d)/2,d,v); } se apelează f(0,4,x), unde x = (2,0,2,6,8), indexat de la 0. Ce valoare returnează?
Funcția împarte intervalul în două până la un singur element și numără pozițiile i unde v[i] = 2·i. Verificăm: v[3] = 6 = 2·3 și v[4] = 8 = 2·4; celelalte nu respectă condiția. Rezultatul este 2.
Unde greșesc elevii: pornesc indexarea de la 1 și compară cu 2·1, 2·2 etc., pentru că așa ar fi numărat „pe hârtie".
