2008 – 9

Si consideri la seguente funzione:

int ricorsiva(int x)
{
    if (x == 1)
        return x;
    else
        return ricorsiva(x-1)+2*x-1;
}

Dire cosa restituisce l’invocazione di ricorsiva(10)

Risposte:

  1. 28
  2. 99
  3. 101
  4. nessuna delle precedenti.

Soluzione: d (100).


La funzione restituisce i valori

  1. 1
  2. 1+2*2-1 = 4
  3. 4+2*3-1 = 9
  4. 9+2*4-1 = 16
  5. 16+2*5-1 = 25
  6. 25+2*6-1 = 36
  7. 36+2*7-1 = 49
  8. 49+2*8-1 = 64
  9. 64+2*9-1 = 81
  10. 81+2*10-1 = 100
  11. 100+2*11-1 = 121

Calcola x2.