Ver Mensaje Individual
  #9 (permalink)  
Antiguo 12/11/2014, 08:17
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años
Puntos: 49
Respuesta: funciones recursivas

Cita:
Iniciado por fightmx Ver Mensaje
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
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int f ( int n ) {
  5.     if ( n < 10 ) return n ;
  6.     return  ( ( ( n / 10 ) % 10 ) >= ( n % 10 ) ?  ( ( n / 10 ) % 10 ) : 1 ) * f ( ( n / 100 ) * 10 + n % 10 ) ;
  7. }
  8.  
  9. int main() {
  10.     cout << f ( 315283 ) << endl ;
  11.      return 0 ;
  12. }

Espero que no se me haya ido la olla .

¡¡¡Saluditos!!!