ayuda ejercicio python

Iniciado por 2pablo9, 13 Septiembre 2017, 21:09 PM

0 Miembros y 2 Visitantes están viendo este tema.

2pablo9

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!

n1sen

#1
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.

null

tincopasan

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.

2pablo9

Muchas gracias a los dos , un abrazo!