Dinner Hall

= Análisis =

= Solución =

C
// Problema 3n + 1 de uva.es // con calculo del numero mas grande que se genera en el proceso, // para dimensionar el array usado en la version 01 long int n1, n2, longitud, maximo, t, i; static long int valormasgrande=1; long int longitudciclo(long int); int desorden; int main { while (scanf("%ld",&n1) !=EOF) { scanf("%ld",&n2); maximo=1; desorden=0; // si el primer numero es mayor que el segundo // los invierto, y pongo desorden=1 para despues // imprimir como corresponde. if (n1>n2) { t=n1; n1=n2; n2=t; desorden=1;} for (i=n1; i<=n2; i++){ longitud = longitudciclo(i); if (longitud>maximo) maximo=longitud; } 		if (desorden==0) printf ("%ld %ld %ld\n", n1,n2,maximo); else printf ("%ld %ld %ld\n", n2,n1,maximo); printf("%ld", valormasgrande); } 	return 0; } long int longitudciclo(long int num){ int longitud=1; if (num>valormasgrande) valormasgrande=num; while (num!=1){ if (num % 2==1) num = num * 3 + 1; else num = num / 2; longitud++; if (num>valormasgrande) valormasgrande=num; } 	return longitud; }
 * 1) include