Python - Ciclo while: Calcular la altura de una pirámide

 
Vista:
sin imagen de perfil
Val: 36
Ha aumentado su posición en 17 puestos en Python (en relación al último mes)
Gráfica de Python

Ciclo while: Calcular la altura de una pirámide

Publicado por Alexander (8 intervenciones) el 20/08/2020 02:52:23
Escenario

La pirámide se apila de acuerdo con un principio simple: cada capa inferior contiene un bloque más que la capa superior.
La figura ilustra la regla utilizada por los constructores:

Piramide

La tarea es escribir un programa que lea la cantidad de bloques que tienen los constructores, y generar la altura de la pirámide que se puede construir utilizando estos bloques.

Nota: La altura se mide por el número de capas completas: si los constructores no tienen la cantidad suficiente de bloques y no pueden completar la siguiente capa, terminan su trabajo inmediatamente.

Encontré este código pero no se muy bien como funciona * blocks -= inlayer* ...

1
2
3
4
5
6
7
8
9
10
11
12
13
blocks = int(input("Enter the number of blocks: "))
 
height = 0
 
inlayer = 1
 
while inlayer <= blocks:
 
    height += 1
    blocks -= inlayer       #Esta línea de código funciona distinto a la de arriba y abajo?
    inlayer += 1
 
print("The height of the pyramid: ", height)


Alguien podría explicarme como funciona este código? Se agradece de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ciclo while: Calcular la altura de una pirámide

Publicado por algoritmo (245 intervenciones) el 20/08/2020 13:02:03
Hola.

Espero que te sirva :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bloques = int(input("Introduzca el número de bloques disponibles: "))
 
altura = 0
 
utilizados = 0
por_fila = 1
 
while True:
    utilizados += por_fila
    if utilizados > bloques:
        break
 
    altura += 1
    por_fila += 1
 
 
print("La altura de la pirámide es de: ", altura)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ciclo while: Calcular la altura de una pirámide

Publicado por alber (1 intervención) el 07/11/2021 16:37:57
Como podria resover este ejercicio con ciclo for
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Ciclo while: Calcular la altura de una pirámide

Publicado por Mosfet (2 intervenciones) el 31/03/2021 04:51:13
Bueno, yo lo pensé de forma diferente, menos eficiente que el código de arriba, pero en fin, otro camino.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
bloques = int(input("Ingrese el número de bloques:"))
 
 
cotaSuperior = 0 #Cada piso (altura) de la pirámide, tiene un número máximo de bloques que se pueden utilizar
altura = 0
altura2: 0
 
while True:
 
#Aplico la condición para que mi contador vaya avanzado hasta alcanzar un máximo de bloques a una altura.
 
      if bloques <= cotaSuperior:
 
            # Si el límite superior menos los bloques ingresados es igual a cero ( no sobran ni faltan bloques), imprime el contador altura, hasta donde haya avanzado.
         if (cotaSuperior - bloques) == 0:
 
          print("La altura de la pirámide:", altura)
          break
 
            # Si el límite superior menos los bloques ingresados es mayor a cero (faltan bloques para completar el nivel), imprime el contador altura aterior (altura2).
         if (cotaSuperior - bloques) > 0:
 
          print("La altura de la pirámide:", altura2)
          break
 
      else:
 
        altura = altura + 1
        altura2 = altura - 1
 
      # Este es el contador que viene asociado con los bloques utilizados por cada altura alcanzada.
        cotaSuperior = cotaSuperior + altura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ciclo while: Calcular la altura de una pirámide

Publicado por PEDRO PEREZ (2 intervenciones) el 08/04/2021 17:58:50
1
2
3
4
5
6
7
8
9
10
bloques = int(input("Ingrese el número de bloques:"))
altura=0
nivel=1
while nivel<=bloques:
    bloques-=nivel
    nivel+=1
    altura+=1
 
 
print("La altura de la pirámide:", altura)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

Ciclo while: Calcular la altura de una pirámide

Publicado por Jose VAnegas (1 intervención) el 16/05/2021 03:59:52
Respuesta

1
2
3
4
5
6
7
8
9
10
11
12
13
bloques = int(input("Ingrese el número de bloques:"))
 
altura = 0
nivel = 1
while altura < bloques:
    bloques -= nivel
    altura += 1
    nivel += 1
 
 
else:
 
    print("La altura de la pirámide:", altura)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 17 puestos en Python (en relación al último mes)
Gráfica de Python

Ciclo while: Calcular la altura de una pirámide

Publicado por Juan (1 intervención) el 09/05/2021 05:01:44
1
2
3
4
5
6
7
bloques = int(input("Ingrese el número de bloques:"))
altura=0
while bloques-(altura+1)>=0: #Aumenta un nivel mientras los bloques alcance.
    bloques-=(altura+1)
    altura+=1;
 
print("La altura de la pirámide:", altura)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ciclo while: Calcular la altura de una pirámide

Publicado por DanielRicardo (1 intervención) el 12/05/2021 23:36:28
1
2
3
4
5
6
7
8
9
bloques = int(input("Ingrese el número de bloques: "))
c = 2
var = 0#guardamos la sumatoria de bloques
altura = 0
while var <= bloques: #si el conteo de bloques sique siendo menor o igual al N° bloques
    var = var + c #contamos el numero de bloques
    altura = c - 1 #cada vez que se pone una nueva fila en la piramide aumenta la altura
    c += 1 #numero de una nueva fila igual a la anterior mas uno
print("La altura de la pirámide:", altura)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ciclo while: Calcular la altura de una pirámide

Publicado por Jhonathan Bueno Otaño (1 intervención) el 21/05/2021 03:25:54
1
2
3
4
5
6
7
8
9
10
bloques=int(input("Ingrese el numero de bloques:"))
x=1  # contador siempre lo uso.
altura=0
bloques_usados=0
while bloques_usados<=bloques:
	x=x+1
	altura=altura+1
	bloques_usados=(x*(x+1))/2
 
print("La altura de la piramide es:",altura)

Yo he usado la función aritmética de conteo de figuras cuando aumente de uno en uno,
Se usa n(n+1)/2, cuando la variable bloques_usados llegue a ser mayor que la variable bloques.
Entonces tomará el valor anterior de altura.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ciclo while: Calcular la altura de una pirámide

Publicado por Wiliam Pedetti (1 intervención) el 28/05/2021 06:58:36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bloques = int(input("Ingrese el número de bloques: "))
 
bloquesUtilizados = 0
bloquesSobrantes  = 0
altura = 1
 
while True :
    bloquesUtilizados += altura
    bloquesSobrantes   = bloques - bloquesUtilizados
    if bloquesSobrantes  >= (altura + 1) :
        altura += 1
    else :
         break
 
print("La altura de la pirámide:", altura, "Sobran :", bloquesSobrantes," bloques")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ciclo while: Calcular la altura de una pirámide

Publicado por Carlos Orozco (1 intervención) el 16/06/2021 05:20:52
1
2
3
4
5
6
7
8
9
10
bloques = int(input("Ingrese el número de bloques:"))
altura=0
 
while altura <= bloques:
    bloques=bloques-altura
    altura=altura+1
 
 
else:
    print("La altura de la pirámide:", altura-1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 799 puestos en Python (en relación al último mes)
Gráfica de Python

Ciclo while: Calcular la altura de una pirámide

Publicado por Yuliana (1 intervención) el 19/06/2021 07:16:04
1
2
3
4
5
6
7
8
9
10
11
12
13
bloques = int(input("Ingrese el número de bloques:"))
 
altura = 0
fila = 1
bloques_usados = 0
 
while bloques_usados <= bloques:
 
    fila = fila + 1
    bloques_usados= bloques_usados + fila
    altura = altura + 1
 
print("La altura de la pirámide:", altura)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 711 puestos en Python (en relación al último mes)
Gráfica de Python

Ciclo while: Calcular la altura de una pirámide

Publicado por eduardo (1 intervención) el 27/06/2021 14:42:41
1
2
3
4
5
6
7
8
9
10
bloques = int(input("numero de bloques :"))             #Ingresar la cantidad de bloques que se tienen para el trabajo
altura = 0                                #Contador de Altura que comienza en cero
base = 1                                 #Contador de base que comienza adelantado en una unidad
while base <= bloques:          #Primera condicion, la base es menor a la cantidad de bloques
    altura += 1                          #al contador de altura se le suma uno, respecto a la base
    bloques -= base                 #Diferencia entre los bloques y la base, si queda algo son los bloques sobrantes
    base += 1                          #Contador de base se le suma uno, siempre sera mayor que la altura por una unidad
print("La altura de la piramide: ", altura)
print("La siguiente base de la piramide: ", base   , "La base actual: ", base-1)
print("los bloques sobrantes: ", bloques)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ciclo while: Calcular la altura de una pirámide

Publicado por Alber (1 intervención) el 07/11/2021 16:35:21
Como podria resolver este ejercicio con ciclo for
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luis
Val: 9
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

Ciclo while: Calcular la altura de una pirámide

Publicado por Luis (15 intervenciones) el 21/11/2021 23:45:17
Si consideramos la pirámide como una progresión aritmética, y el total de bloques como la suma de la progresión, a partir de la expresión de la suma de los términos de la progresión:
Sn = n(a1+an)/2
haciendo a1 = 1 y an = n, despejando n obtenemos:

1
2
3
bloques = int(input('nº de bloques: '))
capas = ((1 + 8*bloques)**.5 - 1)//2
print(capas)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ciclo while: Calcular la altura de una pirámide

Publicado por Milton (1 intervención) el 25/08/2022 22:53:01
blocks = int(input("Ingresa el número de bloques: "))
contador = 0
salida=0
suma=0
while salida == 0 :
contador = contador + 1
suma=suma+contador
if blocks-suma <= contador :
break


print("La altura de la pirámide:", contador)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar