Foro de elhacker.net

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
  1. break
Pon 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
  1. if suma == m:
  2.   pass #Aca remplaza el pass por la funcion que quieras poner.
  3.  
  4.  


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
  1. m=int(input ("ingrese numero natural: "))
  2. suma=0
  3. contador=1
  4. total=0
  5. while total < m:
  6.    total+=contador
  7.    contador+=1
  8.    suma+=1
  9.  
  10. print (suma)
  11.  
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!