Ver Mensaje Individual
  #118 (permalink)  
Antiguo 17/12/2014, 06:40
Pantaláimon
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: Petando la pila. Problemas y retos usando recursividad.

Cita:
Iniciado por eferion
Con esa premisa en mente, lo único a tener en cuenta sería que, si "ver=0" lo único que no se ha de ejecutar es el código que imprime en pantalla... el cómo se lo curre cada uno ya...
Claro, por eso me puse estricto al máximo diciendo que lo único que había que no ejecutar son los printfs y los demás cálculos sí. Ahora se me ha ocurrido un ejemplo:

De momento los algoritmos usados hacen los cálculos al vuelo y no lo guardan en ninguna estructura de datos. Imaginemos que alguien encuentra un algoritmo que más eficiente que los de ahora que trabaja con un array de strings y los va rellenando de la siguiente forma:

Inicio:
Código C:
Ver original
  1. array = {
  2.   "", // 2
  3.   "", // 3
  4.   "", // 4
  5.   "", // 5
  6.   ""  // 6
  7. }
Paso 1:
Código C:
Ver original
  1. array = {
  2.   "2", // 2
  3.   "", // 3
  4.   "2^2", // 4
  5.   "", // 5
  6.   "2"  // 6
  7. }
Paso 2:
Código C:
Ver original
  1. array = {
  2.   "2", // 2
  3.   "3", // 3
  4.   "2^2", // 4
  5.   "", // 5
  6.   "2 * 3"  // 6
  7. }
Paso 3:
Código C:
Ver original
  1. array = {
  2.   "2", // 2
  3.   "3", // 3
  4.   "2^2", // 4
  5.   "5", // 5
  6.   "2 * 3"  // 6
  7. }

Y luego se usa esa estructura para mostrar los resultados. ¿Debería contar como cálculo el recorrer el array para mostrar las soluciones, aunque no se muestren? ¿O con llenar el array con esos datos ya valdría? Esta estructura de datos es sencilla, pero podrían inventarse otras, y quizá costaría más ver el límite.

Por eso cada vez estoy más convencido que con ver == 0 se hagan todos los cálculos salvo los printfs. Es lo menos ambiguo.
__________________
github.com/xgbuils | npm/xgbuils