View Full Version : [C], aiuto funzioni ricorsive
D4rkAng3l
10-03-2005, 17:06
Dovrei risolvre questo esercizio con una fnzione ricorsiva senza usare i vettori....
Scrivere una funzione che prenda un valore intero e lo restituisca dopo avere invertito le sue cifre...per esempio, dato il numero 7631 la funzione dovā restituire 1367
puoi utilizzare un algoritmo del tipo:
una funzione con protoripo:
int fun(in num_elab,int num_cifre,int num_cifremax);
che svolga un'operazione del tipo :
int n=1,m=1:
for(int i=0;i<num_cifre;i++)n*=10
for(int i=0;i<num_cifremax-num_cifre;i++)m*=10
return fun(num_elab%(n),num_cifre-1,num_cifremax)+num_elab/n*m;
dove num_elab č il numero da elaborare num_cifre č il numero delle cifre che ha il numero da elaborare e num_cifremax e il numero mossimo delle cifre.
alla prima chiamata della funzione logicamente num_cifre e num_cifremax corrispondono..
Non so se hai capito il meccanismo ma se vuoi te lo spiego...
Ciao!!
Rileggendolo ho capito che č un po inconprensibile adesso lo spiego:
se abbiamo il numero 12345:
la prima chiamata della funzione sarā fun(12345,5,5);
e questa svolgera esattamente:
fun(2345,4,5)+(12345)/10000*(1);
quindi visto che la divisione se non uso i float č senza virgola avro 1*1;
il risultato della seconda chiamata sarā:
fun(345,3,5)+(2345)/1000*10;
cioč 20:
che sommato a i mi dara 21, e cosi via...
Ciao..
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.