Una ayuda para el lechero y para Memo
Por Daniel M. Maldonado el 21 de noviembre 2008. Leído 578 veces.Que semanita agitada por lo menos para mi, por hay es un justificativo a no poder postear más post pero esperemos que sea más tranquilo. Asi que ahora vamos con un problema de lógica muy simple.
AYUDA AL LECHERO
Un lechero tiene un cántaro de 8 litros lleno de leche, y dos mas de 5 y de 3 litros.
Un cliente le pide exactamente 4 litros.
¿Cómo puede calcular los cuatro litros y dárselos en el cántaro de 5 litros?
AYUDA A MEMO
Y un usuario amigo Memo nos plantea otro desafío para que lo ayudemos
1. Codifique un programa que al recibir como dato un entero positivo, escriba una figura como la que se muestra a continuación (ejemplo para n = 7).
1
121
12321
1234321
123454321
12345654321
1234567654321
Ahora a pensar en la solución!


¿No tienes lector de FeedRSS?, puedes suscribirte por mail a El CoDiGo K y así recibir diariamente las noticias directamente en tu casilla de correo.
Tehsis dice: 21 de noviembre 2008 a las 6:37
Esta es mi solución para el problema de memo (en Python)..
Estoy seguro que debe haber una forma más limpia de hacerlo, pero bueno, es lo que me salio
def piramide(n):
i = 1
while n>=i:
a = 0
for j in range((i*2)-1):
if j < i:
a = a + 1
else:
a = a – 1
print a ,
print
i = i+1
piramide(7)
Tehsis dice: 21 de noviembre 2008 a las 6:38
maldito python y sus sangrias…
Memo dice: 21 de noviembre 2008 a las 11:41
Hey no me funcionó, no lo puedo compilar en turbo c, por favor ayudame a resolver ese problema, memo88…
aabilio dice: 21 de noviembre 2008 a las 13:57
Una función en C para el programa podría ser:
int piramide(int alt) {
int i, b;
for (i=1; i<=alt; i++) {
for (b=1; b=1; b–) {
printf(“%d”, b);
}
printf(“\n”);
}
}
Suponiendo que “alt” es el número introducido para la altura que se pediría desde la función principal, por ejemplo:
int main() {
int altura;
printf(“Qué altura: “);
scanf(“%d”, &altura);
piramide(altura);
PARAR;
return 0;
}
aabilio dice: 21 de noviembre 2008 a las 14:00
No se ha puesto bien la función (sin contar que el for en el que se disminuye el la variable “b” por supuesto son dos menos y no uno >> b–):
int piramide(int alt) {
int i, b;
for (i=1; i<=alt; i++) {
for (b=1; b=1; b–) {
printf(“%d”, b);
}
printf(“\n”);
}
}
aabilio dice: 21 de noviembre 2008 a las 15:11
Nada los comentario se come parte del código…
Dejo enlace al programa en general: http://linfox.es/docs/C/MEMO.cpp
Matias dice: 22 de noviembre 2008 a las 23:01
Amo python
Hace poquito q lo uso y me parece genial.
def escalera(n):
up = ”
down = ”
for i in range(1,n+1):
up += str(i)
if i>1:
down = str(i-1) + down
print up+down
Matias dice: 23 de noviembre 2008 a las 0:14
Y en menos lineas de codigo, pero mas ineficiente
def piramide(n):
for i in range(1,n+1):
print “”.join(map(str, range(1,i+1)) + “”.join(map(str,range(i-1,0,-1)))
por eso me gusta…..
Flor de Maria dice: 26 de noviembre 2008 a las 23:13
El problema del lechero se resuelve de la siguiente manera:
empezamos por vaciar el de 8 en el de 3 asi tenemos :
8 lts contiene 5 lts
5 lts contiene 0 lts
3 lts contiene 3 lts y entonces vaciamos lo que contiene el cantaro de 3 lts al de 5 lts y tenemos que:
8 lts contiene 5 lts
5 lts contiene 3 lts
3 lts contiene 0 lts y entonces vaciamos lo que contiene el cantaro de 8 lts al de 3 lts y tenemos que:
8 lts contiene 2lts
5 lts contiene 3 lts
3 lts contiene 3 lts y entonces vaciamos lo que contiene el cantaro de 3 lts al de 5 lts y tenemos que:
8 lts contiene 2lts
5 lts contiene 5 lts
3 lts contiene 1 lts y entonces vaciamos lo que contiene el cantaro de 5 lts al de 8 lts y tenemos que:
8 lts contiene 7lts
5 lts contiene 0 lts
3 lts contiene 1 lts y entonces vaciamos lo que contiene el cantaro de 3 lts al de 5lts y tenemos que:
8 lts contiene 7 lts
5 lts contiene 1 lts
3 lts contiene 0 lts y entonces vaciamos lo que contiene el cantaro de 8 lts al de 3 lts y tenemos que:
8 lts contiene 4lts
5 lts contiene 1 lts
3 lts contiene 3 lts y entonces vaciamos lo que contiene el cantaro de 3 lts al de 5 lts y tenemos que:
8 lts contiene 4lts
5 lts contiene 4 lts
3 lts contiene 0 lts
espero no haya otra manera mas corta
saludos
soliqui dice: 27 de noviembre 2008 a las 2:05
Otra solución del lechero…
C8|CJ5|CJ3
8 | 0 | 0 litros …. Asi comienza
0 | 5 | 3
3 | 5 | 0
3 | 2 | 3
6 | 2 | 0
6 | 0 | 2
1 | 5 | 2
1 | 4 | 3 Litros… y tenemos una jarra con 4 litros