Menu
Coddy logo textTech

Basi della ricorsione

Fa parte della sezione Fondamenti del percorso C di Coddy. Lezione 50 di 63.

La ricorsione è una tecnica in cui una funzione richiama sé stessa per risolvere un problema. È come risolvere un problema grande suddividendolo in problemi più piccoli e simili.

Esaminiamo una semplice funzione ricorsiva che calcola il fattoriale:

int factorial(int n) {
    // Caso base: il fattoriale di 0 o 1 è 1
    if (n <= 1) {
        return 1;
    }
    
    // Caso ricorsivo: n! = n * (n-1)!
    return n * factorial(n - 1);
}

Ogni funzione ricorsiva ha bisogno di:

  1. Un caso base per interrompere la ricorsione
  2. Un caso ricorsivo che si avvicina al caso base

Ad esempio, calcolare factorial(3):

  • factorial(3) chiama factorial(2)
  • factorial(2) chiama factorial(1)
  • factorial(1) restituisce 1 (caso base)
  • factorial(2) restituisce 2 * 1 = 2
  • factorial(3) restituisce 3 * 2 = 6
challenge icon

Sfida

Facile

Crea una funzione chiamata sumToN che utilizzi la ricorsione per calcolare la somma dei numeri da 1 a n.

Per esempio:

  • sumToN(3) dovrebbe restituire 6 (1 + 2 + 3)
  • sumToN(5) dovrebbe restituire 15 (1 + 2 + 3 + 4 + 5)

La tua funzione dovrebbe:

  1. Usare un caso base quando n è 1 (restituire 1)
  2. Altrimenti, restituire n più la somma dei numeri da 1 a (n-1)

Provalo tu

#include <stdio.h>

// Scrivi qui la tua funzione sumToN

// Non modificare la funzione main()
int main() {
    int n;
    scanf("%d", &n);
    
    printf("%d", sumToN(n));
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore C online