Cita:
Iniciado por eferion Esa función está mal... no tiene que devolver el número de pasos hasta llegar al 1... tienes que devolver "el promedio".......................
No se si me explico.
Sí campeón, te explicas alto y claro.
"Creo" no haberla pifiado. En lugar de dos funciones como
eferion he usado dos argumentos, espero que sea válido:
Código C++:
Ver original#include <stdio.h>
#define NUMERO 8
double promedioCollatz ( unsigned num0 , unsigned num ) ;
int main ( ) {
int n = promedioCollatz ( NUMERO , NUMERO ) ;
printf ( "\n%g\n" , ( ( n
- 1 ) / ( ( float ) NUMERO
) ) ) ; return 0 ;
}
double promedioCollatz ( unsigned num0 , unsigned num ) {
if ( num0 == 1 )
return 1 ;
return ( ( num == 1 ) ? promedioCollatz ( num0 - 1 , num0 - 1 ) : ( num % 2 != 0 ) ? 1 + promedioCollatz ( num0 , 3 * num + 1 ) : 1 + promedioCollatz ( num0 , num / 2 ) ) ;}
¡¡¡Saluditos!!!