Buenas, estoy haciendo un programa que su funcionamiento es el siguiente:
- Pido por teclado un conjunto de números separados por espacios, específicamente 5, por ejemplo:
- Esos números representan una torre, siendo el primer número introducido que está más abajo y el último el que está más arriba, así:
- Después pido que introduzcan "movimientos" (otro conjunto de números separados por espacios), específicamente 3 números, ejemplo:
- Estos números representan los movimientos que se han hecho sobre la torre. El primer movimiento da la vuelta a las 2 primeras tortitas, sobre la torre resultante se da la vuelta a las 3 primeras tortitas y sobre la torre resultante se da la vuelta a las 2 primeras. A continuación hago una demostración, la primera torre es la original que puse antes, y las demás son aplicando los movimientos (la segunda torre con el movimiento 2, la tercera torre con el movimiento 3 y la cuarta torre con el movimiento 2):
- Por último, cuando se hayan realizado todos los movimientos, se devuelve el valor que se encuentre arriba de la torre. En el ejemplo que he puesto la salida sería:
Esto es lo que he hecho:
El programa funciona perfectamente, me muestra la torre final con los movimientos aplicados y el número que está arriba de la torre, pero al parecer me han dicho que debería haber hecho todo con arrays y que eso está mal, pero que yo sepa lo he hecho con un array, ¿no? ¿Hay alguna otra forma con arrays de hacer esto?
Muchas gracias por adelantado.
- Pido por teclado un conjunto de números separados por espacios, específicamente 5, por ejemplo:
Código [Seleccionar]
1 5 4 3 2
- Esos números representan una torre, siendo el primer número introducido que está más abajo y el último el que está más arriba, así:
Código [Seleccionar]
2
3
4
5
1
- Después pido que introduzcan "movimientos" (otro conjunto de números separados por espacios), específicamente 3 números, ejemplo:
Código [Seleccionar]
2 3 2
- Estos números representan los movimientos que se han hecho sobre la torre. El primer movimiento da la vuelta a las 2 primeras tortitas, sobre la torre resultante se da la vuelta a las 3 primeras tortitas y sobre la torre resultante se da la vuelta a las 2 primeras. A continuación hago una demostración, la primera torre es la original que puse antes, y las demás son aplicando los movimientos (la segunda torre con el movimiento 2, la tercera torre con el movimiento 3 y la cuarta torre con el movimiento 2):
Código [Seleccionar]
2 3 4 2
3 2 2 4
4 -> 4 -> 3 -> 3
5 5 5 5
1 1 1 1
- Por último, cuando se hayan realizado todos los movimientos, se devuelve el valor que se encuentre arriba de la torre. En el ejemplo que he puesto la salida sería:
Código [Seleccionar]
2
Esto es lo que he hecho:
Código [Seleccionar]
print("Introduzca la posición de los cinco números:")
num1, num2, num3, num4, num5 = input().split()
numeros = [num5, num4, num3, num2, num1]
numero = []
x = list(map(int, input("Introduzca los movimientos que va a realizar: ").split()))
for z in range(len(x)):
for y in range(x[z]):
numero.append(numeros[y])
numero.reverse()
for y in range(len(numero)):
numeros[y] = numero[y]
numero.clear()
for p in range(len(numeros)):
print(numeros[p])
print("El número que se encuentra en la cima de la torre es el: " + numeros[0])
El programa funciona perfectamente, me muestra la torre final con los movimientos aplicados y el número que está arriba de la torre, pero al parecer me han dicho que debería haber hecho todo con arrays y que eso está mal, pero que yo sepa lo he hecho con un array, ¿no? ¿Hay alguna otra forma con arrays de hacer esto?
Muchas gracias por adelantado.