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!

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)
maldito python y sus sangrias…
Hey no me funcionó, no lo puedo compilar en turbo c, por favor ayudame a resolver ese problema, memo88…
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;
}
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”);
}
}
Nada los comentario se come parte del código…
Dejo enlace al programa en general: http://linfox.es/docs/C/MEMO.cpp
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
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…..
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
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