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);
}
}