Esercizio 3
Scrivi un algoritmo che acquisisca una coppia di interi n ed m con n≥m
che sia in grado di eseguire in modo ricorsivo il prodotto
n·(n-1) ·… ·m
Se n=m deve essere restituito n . Si tratta, dunque, di calcolare un fattoriale
parziale.
Il programma richiesto potrebbe avere il seguente aspetto
using namespace std;
int prod(int m, int n){
if (m == n) {
return n;
} else {
int aux = prod(m, n - 1);
int risultato = n * aux;
cout<<aux<<"\t" <<risultato<<endl;
return risultato;
}//if
}//prod
main(){
cout<<prod(3, 6);
}//main
Se si verifica m=n viene ritornato il valore di n.
In caso contrario viene attivata la ricorsività utilizzando una variabile
ausiliaria (aux) .
Inizialmente aux=m e ad ogni ciclo incrementa diventando m·(m+1)
come si vede nella stampa effettuata a video durante l’esecuzione.