Informatică, întrebare adresată de stanioanaloredana, 8 ani în urmă

Funcţia F are definiţia de mai jos. Ce valoare are F(18)?

int F(int x){ if (x<=1) return x; else return x+F(x-2); }

Va rog să-mi explicați cum a-ți făcut rezolvarea! ​

Răspunsuri la întrebare

Răspuns de UnguruFelina
1

Răspuns:

Explicație:

Intai verifica daca 18 <= 1, ceea ce este fals si intra in else pana ii va da o valoare <=1;

18 + F(16)

16 + F(14)

14 + F(12)

12 + F(10)

10 + F(8)

8 + F(6)

6 + F(4)

4 + F(2)

2+ F(0) // Verifica conditia deoarece 0<1 si urca inapoi in stiva

F(0) este 0;

2+0 =2;

4+2=6;

6+6=12;

8+12=20;

10+20=30;

12+30=42;

14+42=56;

16+56=72;

18+72=90;

Sper ca ai inteles, daca ai nelamuriri pune comment!

Alte întrebări interesante