Manugal
15-06-2006, 17:15
Ciao a tutti!!!!
Non riesco a capire bene questo algoritmo ricorsivo. Il testo dice di assumere che esista una funzione quad() che calcoli il quadrato di un numero. Si deve quindi sviluppare una funzione cubo() che implementi un algoritmo ricorsivo che, usando solo somme e la funzione quad, restituisca il valore passato in input elevato al cubo. Il testo inoltre dice che bisogna usare lo sviluppo di (x+y)^3.
Lo sviluppo di questa lo so cioè è x^3+3x^2+3x+1. Sfruttando questo devo implementare l'algoritmo ricorsivo. Il mio prof l'ha sviluppato in questo modo:
int cubo(int x){
if (x==0) return 0;
else return cubo(x-1)+quad(x-1)+quad(x-1)+quad(x-1)+x+x+x-2;
}
Vorrei capire però come procede il programma ad ogni passo della ricorsione. In particolare vorrei capire qual'è proprio il valore dell'espressione ad ogni passo della ricorsione. Grazie.
Non riesco a capire bene questo algoritmo ricorsivo. Il testo dice di assumere che esista una funzione quad() che calcoli il quadrato di un numero. Si deve quindi sviluppare una funzione cubo() che implementi un algoritmo ricorsivo che, usando solo somme e la funzione quad, restituisca il valore passato in input elevato al cubo. Il testo inoltre dice che bisogna usare lo sviluppo di (x+y)^3.
Lo sviluppo di questa lo so cioè è x^3+3x^2+3x+1. Sfruttando questo devo implementare l'algoritmo ricorsivo. Il mio prof l'ha sviluppato in questo modo:
int cubo(int x){
if (x==0) return 0;
else return cubo(x-1)+quad(x-1)+quad(x-1)+quad(x-1)+x+x+x-2;
}
Vorrei capire però come procede il programma ad ogni passo della ricorsione. In particolare vorrei capire qual'è proprio il valore dell'espressione ad ogni passo della ricorsione. Grazie.