valor = input ('Ingrese cantidad a repetir: ')
valor1 = 2160
# se inicia el ciclo
for i in range(0,valor):
#se eleva al cuadrado
cuadrado=valor1** 2
# se guarda en otra variable llamada elevado
elevado=cuadrado
#se mide el tamaño
tamano=len(str(elevado))
if tamano==7:
elevado1= "0" + str(elevado)
if tamano==6:
elevado= "00" + str(elevado)
if tamano==5:
elevado1= "000" + str(elevado)
if tamano==4:
elevado1= "0000" + str(elevado)
if tamano==5:
elevado1= "000" + str(elevado)
if tamano==4:
elevado1= "0000" + str(elevado)
if tamano==3:
elevado1= "00000" + str(elevado)
#se acorta
xd = elevado1[2:-2]
#se convierte a numero
lol=int(xd)
#se eleva al cuadrado
xad=lol** 2
valor1=xad
print xd
espero y me puedan ayudar se supone que en cada vuelta tiene que agarrar el valor elevado al cuadrado y acortarlo e imprimirlo
pero lo unico que hace es repetir el mismo valor inicial :S
supondré que es python por la primer linea...
tu error está en "elevado1" si tu valor es muy grande no entra a los if
en la primera vuelta xad vale 44302336 por lo tanto en la sgunda vuelta cuadrado vale 1962696975056896 que es mucho más largo que 7...
varias recomendaciones...
1- usa else if (elif) ya que así el programa se salta los casos innecesarios
2- range por defecto es desde 0 así que puedes hacer range(valor)
realmente no se que desastre intentas hacer con los 0 o lograr... pero si arreglas elevado1 resuelves tu problema
Cita de: engel lex en 7 Febrero 2015, 21:15 PM
supondré que es python por la primer linea...
tu error está en "elevado1" si tu valor es muy grande no entra a los if
en la primera vuelta xad vale 44302336 por lo tanto en la sgunda vuelta cuadrado vale 1962696975056896 que es mucho más largo que 7...
varias recomendaciones...
1- usa else if (elif) ya que así el programa se salta los casos innecesarios
2- range por defecto es desde 0 así que puedes hacer range(valor)
realmente no se que desastre intentas hacer con los 0 o lograr... pero si arreglas elevado1 resuelves tu problema
los 0 son por la formula metodo cuadrado medio, pero aun asi cuando imprime sigue mostrando solo la primera cifra al cuadrado las demas no :S
y a proposito de que el valor es largo no importa que sea largo por que se lo salta y lo tendria que imprimir no necesito entrar a los ifs a menos que sea menor a 8 es la regla del metodo
para que tu codigo se vea bien usa las etiqeutas GeSHi...
Citary a proposito de que el valor es largo no importa que sea largo por que se lo salta y lo tendria que imprimir no necesito entrar a los ifs a menos que sea menor a 8 es la regla del metodo
ya que no lo ves, te comento los errores en el codigo
valor = input ('Ingrese cantidad a repetir: ')
valor1 = 2160
# se inicia el ciclo
for i in range(0,valor):
#se eleva al cuadrado
cuadrado=valor1** 2 #<- aqui asignas valor
# se guarda en otra variable llamada elevado
elevado=cuadrado #<- aquí pasas a otra variable
#se mide el tamaño
tamano=len(str(elevado))
if tamano==7:
elevado1= "0" + str(elevado)
if tamano==6:
elevado= "00" + str(elevado)
if tamano==5:
elevado1= "000" + str(elevado)
if tamano==4:
elevado1= "0000" + str(elevado)
if tamano==5:
elevado1= "000" + str(elevado)
if tamano==4:
elevado1= "0000" + str(elevado)
if tamano==3:
elevado1= "00000" + str(elevado)
#se acorta
xd = elevado1[2:-2] #<- pasas elevado1 a xd, pero si el numero era más lago de 7 nunca fue asignado
#por lo tanto elevado1 tiene un valor inesperado y no controlado, ya que nunca se asignó
#por lo tanto el interprete asume que fue el ultimo usado
#se convierte a numero
lol=int(xd)
#se eleva al cuadrado
xad=lol**
valor1=xad
print xd
para corregir eso, y mejorar la eficiencia del programa usa elif y else