Ver Mensaje Individual
  #7 (permalink)  
Antiguo 12/11/2014, 04:47
fightmx
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 2 meses
Puntos: 22
Respuesta: funciones recursivas

Otra posible solución:
Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int createProduct(int n){
  5.     if(n < 10)return n;
  6.     int last = n % 10;
  7.     int curr = (n /= 10) % 10;
  8.     return ((curr >= last)? curr : 1) * createProduct((n/10)*10 + last);
  9. }
  10.  
  11. int main() {
  12.     cout << createProduct(3183) << endl;
  13.     return 0;
  14. }

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.