Una aproximación:
Código C++:
Ver originalint f( int numero )
{
int cifras
= (int)log10( numero
); if ( cifras == 0 )
return 0;
int ultimo = numero % 10;
int primero
= numero
/ pow( 10, cifras
);
numero
-= primero
* pow( 10, cifras
);
int to_return = f( numero );
if ( primero >= ultimo )
{
if ( to_return != 0 )
to_return *= primero;
else
to_return = primero;
}
return to_return;
}