Albert Einstein: ... la nostra conoscenza, se paragonata alla realta' e' primitiva e infantile. Eppure e' il bene piu' grande che possediamo.
... all our science, measured against reality, is primitive and childlike-and yet it is the most precious thing we have.
Informatica : Code snippets
Fattoriale
Il fattoriale di un numero intero N (positivo e maggiore di 0), e' uguale al prodotto della moltiplicazione di N con tutti i numeri interi compresi tra N-1 e 1. Es.: Il fattoriale di 4 e': 4 * 3 * 2 * 1
Il fattoriale e' indicato dal simbolo "!"; N! indica il fattoriale del numero N. Il fattoriale si presta facilmente ad una definizione ricorsiva. Si puo' infatti dire (da quanto esposto sopra) che:
Il fattoriale di N = N * fattoriale(N-1) Oppure N! = N * (N-1)!;
Cioe' il fattoriale di un numero N e' uguale al numero N moltiplicato per il Fattoriale di (N - 1).
Es.: Nel caso di 4 : Fattoriale(4) = 4 * Fattoriale(3) cioe' 4 * (3 * 2 * 1). L'espressione tra parentesi e' il Fattoriale di 3.
Nota: - Essendo il numero 1 l'elemento neutro della moltiplicazione, si puo' omettere e moltiplicare fino a 2. - Per definizione matematica, inoltre, il fattoriale di 0 e' 1 cioe' 0! = 1 - Essendo ricorsiva la definizione, e' semplice implementarla in codice usando, appunto, una funzione ricorsiva.
Linguaggio: C#
Parametri : n = Numero di cui si vuole il fattoriale Ritorna : Il fattoriale di n
public long fattoriale(long n) { if (n == 0) // il fattoriale di 0 e' 1 per definizione ! { return (1);
} else if (n == 1) // il fattoriale di 1 e' ovviamente 1 ! { return (1); // Ogni funzione (metodo, procedura...) // ricorsiva, deve avere un punto di uscita // in cui la chiamata a se stessa non viene eseguita
} else { // Il fattoriale di n e' ....
long res = n * fattoriale(n - 1);
// La funzione richiama "se stessa" per avere il // fattoriale di N-1, quindi lo moltiplica per N e // lo ritorna al chiamante.
return (res);
// Esattamente come nella definizione formale. // Il fattoriale di N = N * Fattoriale(N-1);
} }
Linguaggio: PASCAL
Parametri : n = Numero di cui si vuole il fattoriale Ritorna : Il fattoriale di n
function fattoriale(n:integer):integer; begin if (n=0) then begin
result := 1;
end else if (n=1) then begin
result := 1;
end else begin
result := n * fattoriale(n - 1);
end; end;
Metti la scheda negli appuntiVisualizza appuntiAzzera appunti