Dau coroana! Am nevoie doar de exemplul numeric, va rog din suflet sa îmi explicați cum se face

1. Funcţia F are definiţia alăturată. Ce valoare are F(18)?
int F(int x)
{
if (x<=1) return x; else return x+F(x-2); }

a.90 b.171 c.1 d.18


Răspuns :

Răspuns:

Este o functie definita recursiv. Va apela functia pentru valori din doi in doi mai mici pana cand apeleaza pentru ceva mai mic sau egal cu 1. Sa ne uitam ce ar face functia. Incepe cu 18, si returneaza 18 + F( 16 ). F( 16 ) = 16 + F( 14 ) si tot asa. Pana la final, vom avea 18 + 16 + 14 + ... + 2 = 90. Deci raspunul corect este a, 90.

Explicație: