Ver Mensaje Individual
  #116 (permalink)  
Antiguo 17/12/2014, 06:14
kutcher
 
Fecha de Ingreso: noviembre-2014
Mensajes: 36
Antigüedad: 10 años, 1 mes
Puntos: 13
Respuesta: Petando la pila. Problemas y retos usando recursividad.

Cita:
Iniciado por Pantaláimon Ver Mensaje
La idea de tener una bandera ver era para poder ponerla a 0 y medir el tiempo de ejecución del código sin las interferencias que pudiera producir mostrar la salida estándar. El problema es que hay códigos que dejan de hacer ciertos cálculos que no son meramente de mostrar los resultados cuando ver == 0.

Un ejemplo claro es el de kutcher donde hay el siguiente código:
Entiendo en un primer momento lo mal interprete, pero bueno a corregirlo:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <sstream>
  3.  
  4. int comprobar_primo( int* num, int e )
  5. {
  6.     if (*num%e == 0)
  7.     {
  8.         *num /= e;
  9.         return 1 + comprobar_primo(num, e);
  10.     }
  11.     return 0;
  12. }
  13. std::string factor_primo(int a, int b, std::stringstream& fact)
  14. {
  15.     unsigned exp = comprobar_primo(&a, b);
  16.     if (exp >= 1)
  17.     {
  18.         fact << b;
  19.         if (exp > 1) fact << '^' << exp;
  20.         if (a != 1) fact << " * ";
  21.     }
  22.     if (a > 1) factor_primo(a, b + 1, fact);
  23.     return fact.str();
  24. }
  25. void descompon(int a, int b, int ver)
  26. {
  27.     std::stringstream fact;
  28.     std::string result = factor_primo(a, 2, fact);
  29.     if(ver)
  30.         std::cout << a << " = " << result << std::endl;
  31.     if(a < b)
  32.         descompon( a + 1, b, ver);
  33. }
  34. int main(void)
  35. {
  36.     descompon(2, 1000, 1);
  37.     return 0;
  38. }

Y ahora con respecto al primer reto, al decir tu lo transforme en otro con sus elementos ordenados te refieres a almacenar los elementos ordenados en un segundo array

Un saludo