2008 – 6

Si consideri la seguente funzione:

int ricorsiva(int N)
{
    if(N > 1)
        return N*ricorsiva(N - 1);
    else
        return 1;
}

Indicare qual è il valore restituito dall’invocazione di ricorsiva(5)

Risposte:

  1. 5
  2. 20
  3. 120
  4. nessuno dei precedenti.

Soluzione: c (120).


La funzione ricorsiva() calcola il valore dell’espressione N*(N-1)*…*2*1

  1. 1
  2. 2*1 = 2
  3. 3*2*1 = 6
  4. 4*3*2*1 = 24
  5. 5*4*3*2*1 = 120
  6. 6*5*4*3*2*1 = 720

Si tratta della funzione fattoriale

fattoriale1

fattoriale3