Ricorsione
Sfruttiamo lo stack per memorizzare dati
Esempio fattoriale:
import java.util.*;
public class Fattoriale { public static int Ricorsione(int num){ if(num==0) return 1;
else return Ricorsione(num-1)*num; }
public static void main (String args[]) { int N;
Scanner in = new Scanner(System.in); System.out.print("Inserire un numero: ");
N = in.nextInt(); System.out.println("\nFattoriale di " + N + " ---> " + Ricorsione(N) + "\n"); }
}
Si ha una ricorsione quando un metodo richiama se stesso per un certo numero di volte. Ogni ricorsione può essere "tradotta" in iterazione, pertanto se utilizzarla o meno spetta al programmatore che deve tenere conto di due cose:
- Codice più leggibile
- Utilizza più memoria rispetto ai cicli
Dunque abbiamo un pro e un contro, insomma bisogna vedere se è più conveniente utilizzare la ricorsione o un ciclo iterativo.
Esempi sulla ricorsione
- in formato .java -

Somma ricorsiva
Esempio: la somma ricorsiva di 4 è uguale a 4+3+2+1 = 10.
Link:
https://mega.nz/#!rM9FAaCR!Yyy26f-lvzsILXu42Rw7WFh_xjrP0mw9oqPV6nGdo-U
Fattoriale
Esempio: il fattoriale di 5 è uguale a 5x4x3x2x1=120.
Link:
https://mega.nz/#!XYkjgCTa!O2m1U3VUNk13c2Jx7JORhIMrZMwZEHfEh4CtCAsoGHc

Fibonacci
Esempio: i primi 6 numeri della sequenza di fibonacci sono 1 - 1 - 2 - 3 - 5 - 8 .
Link:
https://mega.nz/#!rIdjkJpL!jcjx2WDsFiaEw9r1ZA0Zha9MkpkE3qO66jRnyStpr7k