Asuntos Oficiales > Retos
Re: Los gatos en el sombrero
JuanK:
Es broma,
realmente ya lo hice y no es ninguna tarea.
Hace algun tiemponuestrop amigo JoseD nos dejo algunos ejercios, pues bien me gustaria que los retomaramos poco a poco, y este me parecio bastanta bueno, espero que se animen a resolverlo.
LOS GATOS CON SOMBRERO
Tenemos un gato que usa un sombrero.
Dentro del sombrero del gato hay un grupo de gatos (más pequeños) que también usan sombrero, y que también tienen mas gatos (más pequeños aun) con sombrero dentro del suyo.
Solo los gatos más pequeños no tienen otros gatos dentro de su sombrero.
Ahora, sucede que nuestro gato camina por una habitación desarreglada que necesita limpiar. Como él no quiere hacer el trabajo, decide utilizar los gatos (más pequeños) dentro de su sombrero para que hagan el trabajo por él. Cada uno de estos gatos ayudantes tiene su propio sombrero, por lo que prefieren no trabajar, y usar los gatos (más pequeños) que tienen dentro de sus respectivos sombreros; y así sucesivamente.
Eventualmente los gatos alcanzan el tamaño más pequeño. Estos gatos, los más pequeños, no tienen gatos adicionales en su sombrero, y por eso les toca hacer la limpieza.
El número de gatos dentro de cada sombrero (excepto el de los más pequeños) es una constante, N.
La altura de los gatos dentro de un sombrero es 1/(N + 1) veces la altura del gato dueño del sombrero en el que ellos están.
Los más pequeños gatos tienen altura de 1, y son los que hacen todo el trabajo.
Todas las alturas son enteros positivos.
Dada la altura de nuestro gato y el número de gatos que finalmente hacen la limpieza (gatos de altura uno), realice un programa que calcule el número de gatos que no hacen nada del trabajo (gatos de altura mayor que uno) y también determine la suma de todas las alturas de los gatos (la altura que forman todos los gatos montados uno sobre otro).
DATOS DE ENTRADA: “gato.in”
La entrada consta de una secuencia de especificaciones de gato-en-el-sombrero.
Cada especificación se encuentra en una línea que consta de dos enteros positivos separados por un espacio en blanco.
El primer entero es la altura de nuestro gato, y el segundo entero es el número de gatos que trabajan.
El archivo termina con #.
DATOS DE SALIDA: “gato.out”
Para cada línea del archivo de entrada (especificación de gato-en-el-sombrero), se deberá imprimir dos enteros positivos.
El primero indicando el número de gatos que no trabajan, y el segundo determina la altura que forman todos los gatos uno sobre otro.
Deberá haber una línea de salida por cada línea de entrada.
EJEMPLO:
Lo coloque dentro de el tag de codigo solo para que puedan ver bien el formato.
--- Código: Text --- archivo “gato.in”16 9216 125#---------archivo "gato.out”4 3731 671
A N I M E N S E
Hay que saber aprovechar este foro!!!...
si tienen dudas con el ejercicio me avisan y miro a ver en que les puedo ayudar.
La solucion la publicare en unas semanas o meses, segun como se desarrolle este post....
Juank:hippi:
essios:
wenas, empece a trabajar con este reto. de momento he desarrollado un programa en el que se inserta los gatos que trabajan y te devuelve el numero de gatos que no trabajan. es solo una pequeña parte del reto, pero lo pongo pa k se vaya animando esto:
#include<stdio.h>
void main(void)
{
int divisor=0,gatostrabajan=0,gatostotales=gatostrabajan+(divisor+1);
printf("escribe el numero de gatos que trabajan: ");
scanf("%d",&gatostrabajan);
for(divisor=2;divisor<=gatostrabajan/2;divisor++)
{
if(gatostrabajan%divisor==0)
{
gatostotales=gatostrabajan+(divisor+1);
}
}
printf("el numero total de gatos que no trabajan es %d",gatostotales-=gatostrabajan);
getch();
}
tiene algun error pq con algunos ejemplos no funciona, ya me contaran
JuanK:
En efecto esta mal, no aplica sino para unos pocos casos.
El algoritmo funcional debe aplicar para todos, te voy a dar pista pequeñita:
Si un sombrero 'x' posee N gatos, quiere decir que cada sombrero dentro de el sombrero 'x' tendra N*N gatos, es decir N al cuadrado...
y a la vez cada uno de los sombreros que poseen N*N gatos, tienen sombreros a los cuales les cabe tambien N gatos... y asi sucesivamente menos los ultimos gatos....
Recuerda que antes de diseñar los algoritmos, debes entender el sistema, asi que lo primero es que diseñes un diagrama donde expliques como funciona este sistema.. es decir no trabajes aun en conseguir los datos pedidos, trabaja primero en como representar el funcionamiento de este sistema de manera grafica y matematica...
Cuando entiendas cual es el funcionamiento del sistema, podras comenzar a mirar como obtienes los datos datos que te piden, a partir de la informacion que descubras.
Suerte, y sigue metiendole ganas!!!
a medida que progreses, o que otros progresen, les dare más pistas, porque al fin y al cabo ustedes estan aprendiendo.
Juank
JuanK:
esto les va a ser de utilidad:
Juank
© Jonathan ©:
Hola, estoy intentando resolver este reto, ya tengo casi listo el programa que resuelve el reto.... queria agregar al reto la forma de encontrar "N" que seria el umero de gatos que hay dentro de cada sombrero, creo que se puede hallar utilizando el numero de gatos que trabajaran, es decir si el numero de gatos que trabajaran sera de 125 gatos, este numero se puede dividir por 2, 3, 5 o 7, asi hallariamos la cantidad de gatos dentro de cada sombrero.
EJ:
125 gatos trabajan
/******************************/
......... implementar un bucle que divida este numero por 2, tantas veces como sea necesario, si se logra alcanzar a 1 entonces quiere decir que dentro de cada sombrero hay 2 gatos.
En este ejemplo si dividimos por dos, no nos dara de ninguna manera como resultado un 1, entonces intentamos con 3, al intentar vemos que tampoco funciona, probamos por 5 y ahi si, eso quiere decir que hay 5 gatos dentro de cada sombrero, porque:
125 / 5 = 25
25 / 5 = 5
5 / 5 = 1
Ahi tambien estan hallados la cantidad de gatos que no trabajan, al saber cuantos hay en cada sombrero encontramos la solucion, en este caso sumamos los 25+5+1=31 no sumamos los 125 chiquitos porque son los que trabajan.
Bueno, continuare con mi desarrollo, vere si puedo terminar el programa, espero esto sirva de algo y que no este mal elaborado, me costo bastante llegar hasta ahi. Saludos para todos y suerte con el reto. :guitar:
Navegación
[#] Página Siguiente
Ir a la versión completa