Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/11/2014, 16:00
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: funciones recursivas

Pequeño fallo, no leí lo de que había que multiplicar el resultado por el valor del último dígito :)

Ya aprovecho para dejar solo un return en la función.

Código C++:
Ver original
  1. int f( int numero )
  2. {
  3.   int to_return = numero;
  4.  
  5.   int cifras = (int)log10( numero );
  6.   if ( cifras > 0 )
  7.   {
  8.     int ultimo = numero % 10;
  9.     int primero = numero / pow( 10, cifras );
  10.  
  11.     numero -= primero * pow( 10, cifras );
  12.  
  13.     to_return = f( numero );
  14.  
  15.     if ( primero >= ultimo )
  16.       to_return *= primero;
  17.   }
  18.  
  19.   return to_return;
  20. }