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

En vista de que todas las soluciones expuestas (respetando la plantilla) son similares a la de eferion quisiera exponer otra pero usando tres funciones para variar :

Código C++:
Ver original
  1. unsigned int collatz(unsigned int n )
  2. {
  3.     if ( n == 1 ) return 0;
  4.     return (n % 2) ? 1 + collatz(n * 3 + 1) : 1 + collatz(n / 2);
  5. }
  6. double totalCollatz(unsigned int n)
  7. {
  8.     return (n != 0) ? collatz(n) + totalCollatz(n - 1) : 0;
  9. }
  10.  
  11. double promedioCollatz(unsigned int n)
  12. {
  13.     return totalCollatz(n)/n;
  14. }

Saludos