Una funzione F con un parametro che varia nell'insieme INP è definita per induzione se
Vediamo alcuni esempi
IN C è molto semplice realizzare funzioni ricorsive, basta richiamarle all'interno del loro body.
int Fatt(int n) { if(n <= 0) return 1; else return n * Fatt(n-1); }
Consideriamo il problema Hanoy(N) che consiste nel trovare le istruzioni per muovere n dischi da un piolo, sia A, ad un'altro, sia B, e poi cerchiamo di darne una soluzione per mezzo di una funzione definita per induzione su N.
void Hanoy(int n_dischi, int partenza, int arrivo) { if(n_dischi < 1 || partenza == arrivo) printf("ERRORE\n"); else if(n_dischi == 1) printf("Muovi disco da %d a %d\n",partenza, arrivo); else { int altro_piolo = 6 - partenza - arrivo; Hanoy(n_dischi -1, partenza, altro_piolo); printf("Muovi disco da %d a %d\n",partenza, arrivo); Hanoy(n_dischi -1, altro_piolo, arrivo); } }