Ver Mensaje Individual
  #30 (permalink)  
Antiguo 21/11/2014, 13:18
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años
Puntos: 49
Respuesta: Petando la pila. Problemas y retos usando recursividad.

Cita:
Iniciado por Pantaláimon Ver Mensaje
No es válido leosan, aún no me ha dado tiempo de mirar la solución, pero la firma/prototipo de la función es el requerido por el enunciado. Si la función recursiva tiene más parámetros de los que se requiere, define ésta como una función auxiliar y que la función requerida por el enunciado llame a ésta. ............................................
¡¡¡ Quisquilloso, bandido ¡¡¡.


Pero.....mejor que usar otra función, uffffff, ya que nadie ha dicho nada de que esté prohibido usar variables globales :

Código C++:
Ver original
  1. #include <stdio.h>
  2. #define NUMERO  9
  3.  
  4. unsigned num0 = NUMERO ;
  5.  
  6. double promedioCollatz ( unsigned num ) ;
  7.  
  8. int main ( ) {
  9.   int n = promedioCollatz ( NUMERO ) ;
  10.   printf ( "\n%g\n" ,  ( ( n - 1 ) /  ( ( float ) NUMERO) ) ) ;
  11.   return 0 ;
  12. }
  13.  
  14. double promedioCollatz ( unsigned num )  {
  15.   if ( num0 == 1 )
  16.     return 1 ;
  17.   return ( ( num == 1 ) ? promedioCollatz ( --num0  ) : ( num %  2 != 0 ) ?  1 + promedioCollatz ( 3 * num + 1 ) : 1 + promedioCollatz ( num / 2 ) ) ;
  18. }



Pero yo propondría que los prototipos que indicas sean tan sólo una ayuda por si alguien está muy perdido, así se mejoraría la inventiva e ingenio de los retos. Pero claro, es tan sólo una opinión.....

¡¡¡Saluditos!!!


Última edición por leosansan; 21/11/2014 a las 14:00