Dovrei debuggare questo benedetto programmma perchè non mi funziona la parte ricorsiva del programma
codice:
double algoritmoBinario (float base, int esp){
int negativo = 0;
if ((base == 0) && (esp == 0)) return 0; //Potenza indeterminata
else if(esp < 0){
negativo = 1;
esp = -esp;
}
double ris = 1;
float temp = base;
while(esp > 0){
if(esp%2 == 1) ris *= temp;
temp *= temp;
esp /= 2;
}
if(negativo)
return 1/ris;
else
return ris;
}
double algoritmoBinarioRicorsivo (float base, int esp){
if((base == 0) && (esp == 0)) return 0;
else if(esp == 0) return 1;
else if(esp < 0) return algoritmoBinarioRicorsivo(base, -esp);
else {
static double ris = 1;
if(esp%2 == 1) {
ris = base;
return ris * algoritmoBinarioRicorsivo(ris, esp/2);
}
else{ris *=ris;
return algoritmoBinarioRicorsivo(ris, esp/2);}
}
}
void main(){
cout<<"2^3 = "<<potenzaSemplice(2, 3)<<endl;
cout<<"2^3 = "<<potenzaSempliceRicorsiva(2, 3)<<endl;
cout<<"2^-1 = "<<algoritmoBinario(2, 3)<<endl;
cout<<"2^3 = "<<algoritmoBinarioRicorsivo(2, 3)<<endl;
}
Metto un bel punto di interruzione... premo F5 (avvia debug) ma lo ignora.... perchè???
Configurazioni soluzioni è messo in DEBUG no in release....
grazie