Cita:
Iniciado por fightmx No es una buena idea utilizar variables estáticas en funciones recursivas, finalmente no dejan de ser variables globales con visibilidad a nivel de función, por lo que si hubieran llamadas concurrentes lo más probable es que no se obtendría el resultado esperado.
Todo estriba en el uso adecuado de las mismas, por algo forma parte del estándar de C.
Y puestos a prescindir de las variables estáticas, por qué no prescindir de las que no lo son:
Código C++:
Ver original#include <iostream>
using namespace std;
int f ( int n ) {
if ( n < 10 ) return n ;
return ( ( ( n / 10 ) % 10 ) >= ( n % 10 ) ? ( ( n / 10 ) % 10 ) : 1 ) * f ( ( n / 100 ) * 10 + n % 10 ) ;
}
int main() {
cout << f ( 315283 ) << endl ;
return 0 ;
}
Espero que no se me haya ido la olla .
¡¡¡Saluditos!!!