El chocolate Moskita (chocolate) Son ya 11 años que conocemos de la existencia de los Ositos Barrigoncitos Intergalácticos, son una extraña raza que ha sabido ocultarse entre nosotros y de vez en cuando tienen locas aventuras que luego son narradas en problemas de programación. Por razones convenientes para la descripción de este problema llamaremos OBI a estos Ositos. Luego del nombramiento del nuevo líder barrigoncito, un pequeño grupo de OBIs tomaron la deci- sión de mudarse a Moscalandia a recopilar información sobre su población y poder colaborar a los OBI en su búsqueda de conquistar el 3er sol naciente de la galaxia IOI. Luego de un largo año trabajando en Moscalandia, nuestros amigos ahora conocidos como Moskitas al fin fueron otorgados con unas merecidas vacaciones. Penguino, uno de los OBIS Moskita, decidió asistir a la gran caminata anual por los lagos del plane- ta y llevo bastantes barras de chocolate Moskita para compartir con todos, cada barra de chocolate tiene N 1 divisiones, es decir está dividido en N partes. Nuestro amigo Penguino esta tan traumado con el concepto de "Divide y vencerás" que decide partir este chocolate en K partes lo más iguales posible (obviamente solo partiendo los chocolates por donde están las marcas de división ya establecidas). Con partes lo más iguales posibles, Penguino se refiere a que si debemos partir un chocolate de 7 partes en 3 partes "lo más iguales posible", quedaran dos partes de tamaño 2 y una parte de tamaño 3. O en general para cualquier Ny K, quedaran N mod K partes de tamaño (N div K) + 1 y las restantes partes serán de tamaño N div K(No olviden que mod significa modulo y div significa división entera). Pero se da cuenta que ahora debe volver a partir cada pedazo de chocolate (ahora con su nuevo tamaño), y así continua hasta que el chocolate queda partido en N pedazos. El OBI Penguino duda de la eficiencia de su algoritmo para partir el chocolate, por ello requiere de tu ayuda interespacial. Penguino te dirá la cantidad de divisiones N que tiene su chocolate, y el valor K que eligió para partirlo, es tu responsabilidad decirle 2 cosas a Penguino: ■ Cuantas veces en total partió el chocolate para que esté completamente partido. ■ Cuantas veces fue partido el pedazo que más veces se partió.
Respuestas a la pregunta
Algoritmo en pseint para calcular la máxima equidad en las porciones de repartición de un chocolate marcado en divisiones para repartir. Se adjunta imagen de salida por pantalla y diagrama de flujo.
Algoritmo dividirChocolate
- // Definir variables
Definir queda Como Real
Definir n,k,f,per, dif, div Como entero
Definir cntinuar Como Caracter
cntinuar <- 's'
Escribir 'Dividir todo el chocolate'
Escribir '****************************'
Mientras cntinuar='s' Hacer
n <- 0
k <- 0
f <- 0
per <- 0
- //Ingreso de datos válidos
Escribir "Valor de N (Divisiones marcadas del chocolate):" Sin Saltar
Repetir
leer n
si no (n>0) Entonces
Escribir "Entrada inválida"
FinSi
Hasta Que n>0
Escribir "Valor de K (Moskitas que reciben):" Sin Saltar
Repetir
leer k
si no (k<n) Entonces
Escribir "Entrada inválida, k debe ser menor que n"
FinSi
Hasta Que k<n
- //Procesar datos
entro <- trunc(n/k)
si n mod k <> 0 Entonces
Repetir
f <- f+1
per<-k-f
div <- entro*per
dif <- n - div
queda <- dif/f
Hasta Que abs(entro-queda) = 1 o f < n
- //Imprimir resultados
Escribir per, " Moskitas reciben ", entro, " trozos de chocolate"
Escribir f, " Moskitas reciben ", queda, " trozos de chocolate"
Escribir "Total de veces en que se partió el chocolate: " entro+queda
Escribir "Veces que fue partido el pedazo que más veces se partió: " Sin Saltar
si per > f Entonces
Escribir per
SiNo
Escribir f
FinSi
SiNo
Escribir k, " Moskitas reciben ", entro, " trozos de chocolate"
FinSi
Repetir
Escribir '¿Otra vez (s/n)' Sin Saltar
Leer cntinuar
Mientras Que (cntinuar<>'s' Y cntinuar<>'n')
FinMientras
FinAlgoritmo
Para saber más acerca de algoritmo en pseint para resolver problemas consulte: https://brainly.lat/tarea/57394274
#SPJ1