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!
Para parar un ciclo, usa la función 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:
if suma == m:
pass #Aca remplaza el pass por la funcion que quieras poner.
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:
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.
Muchas gracias a los dos , un abrazo!