Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: 2pablo9 en 13 Septiembre 2017, 21:09 PM

Título: ayuda ejercicio python
Publicado por: 2pablo9 en 13 Septiembre 2017, 21:09 PM
saludos! estoy iniciandome en la programacion con python y hay un ejercicio q no puedo resolver :
Hacer un programa que reciba un número m y determine el primer n para el cual la suma 1+2+ ... + n > m . Por ejemplo, si el usuario ingresa 11 se deberá retornar 5 ya
que 1+2+3+4 =10<11 y 1 + 2 + 3 + 4 + 5 = 15>11

como deberia encararlo ? con "for" o con "while"?

intenté con for pero nose como hacer para parar el ciclo en "m" :

m=int(input ("ingrese numero natural"))
suma=0
for i in range(1,m):
   suma=suma+i
   print(suma) #solo para control de suma

print (suma)

muchas gracias!
Título: Re: ayuda ejercicio python
Publicado por: n1sen en 13 Septiembre 2017, 21:22 PM
Para parar un ciclo, usa la función
Código (python) [Seleccionar]
breakPon esa función dentro del for.
Ah y otra cosa, cuando pongas código usa el código GeShi correspondiente al lenguaje de programación que estés escribiendo...  :rolleyes:
Edito:
Si te refieres a que el bucle pare en el numero de la variable m, usa un if, ejemplo:
Código (python) [Seleccionar]
if suma == m:
   pass #Aca remplaza el pass por la funcion que quieras poner.

Título: Re: ayuda ejercicio python
Publicado por: tincopasan en 13 Septiembre 2017, 21:37 PM
como siempre en python se puede resolver de muchas formas, en este caso lo hago de la forma más simple para que se entienda la lógica del script:
Código (python) [Seleccionar]

m=int(input ("ingrese numero natural: "))
suma=0
contador=1
total=0
while total < m:
    total+=contador
    contador+=1
    suma+=1

print (suma)

es tan simple que no requiere explicación.
Saludos.
Título: Re: ayuda ejercicio python
Publicado por: 2pablo9 en 13 Septiembre 2017, 21:51 PM
Muchas gracias a los dos , un abrazo!