Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: bichotg en 16 Febrero 2012, 22:21 pm



Título: Sumar todos los numeros entre el 1 y el valor que le damos a la funcion [python]
Publicado por: bichotg en 16 Febrero 2012, 22:21 pm
Hola !!

Haber si me podéis echar una mano con este ejercicio que estoy atascado y no doy con la solución


Citar
Create a function addNumbers(x) that takes a number as an argument and adds all the integers between 1 and the number (inclusive) and returns the total number.

Examples

>>> addNumbers(10)
55
>>> addNumbers(1)
1


Y empieza asi el ejercicio :

def addNumbers(num):
total = 0
i = 1
while


Conozco el ciclo indefinido while, pero no logro tener una idea para aplicarlo, he echo el ejercicio usando for sin problema, pero tiene que ser con while

   
Código
  1. def addNumbers(num):
  2.        total=0
  3.        for num in range(num+1):
  4.            total=total+num
  5.            return total


Saludos!!!
 


Título: Re: Sumar todos los numeros entre el 1 y el valor que le damos a la funcion [python]
Publicado por: leogtz en 17 Febrero 2012, 03:49 am
En realidad es muy sencillo:

Código:
contador = 1
total = 0
while contador <= num
{
    total = total + contador
    contador = contador + 1
}


Título: Re: Sumar todos los numeros entre el 1 y el valor que le damos a la funcion [python]
Publicado por: skapunky en 17 Febrero 2012, 14:13 pm
Tu programa es muy sencillo, puedes hacer un bucle, aunque sabiendo matematicas tiene una solución mucho mas sencilla. Fijate en lo siguiente, puedes hacer el programa en una sola línea:

Entiendo que quieres sumar los primeros N numeros, donde 1+2+...+(N-1)+N

Usa la formula:

Resutado sumatorio = (N*(N+1))/ 2


Fuck yeah, una sola línea sabiendo matemáticas  ;)


Título: Re: Sumar todos los numeros entre el 1 y el valor que le damos a la funcion [python]
Publicado por: bichotg en 18 Febrero 2012, 01:26 am
En realidad es muy sencillo:

Código:
contador = 1
total = 0
while contador <= num
{
    total = total + contador
    contador = contador + 1
}

Perfecto Leo!!! ahora lo entendi bien gracias a tu respuesta, tu lo escribes en C? o en otro lenguaje verdad? lo digo por el '}',

 mira al final lo ice asi:

Código
  1. def addNumbers(num):
  2.    total=0
  3.    i=1
  4.    while i<=num:
  5.        total=total+i
  6.        i=i+1
  7.    return total


Tu programa es muy sencillo, puedes hacer un bucle, aunque sabiendo matematicas tiene una solución mucho mas sencilla. Fijate en lo siguiente, puedes hacer el programa en una sola línea:

Entiendo que quieres sumar los primeros N numeros, donde 1+2+...+(N-1)+N

Usa la formula:

Resutado sumatorio = (N*(N+1))/ 2


Fuck yeah, una sola línea sabiendo matemáticas  ;)


Sabes que pasa que son ejercicios y me marcan el principio y el ejercicio empezaba asi:

Código
  1. def addNumbers(num):
  2. total = 0
  3. i = 1
  4. while

el principo que te marcan no se puede cambiar


Saludosss



Título: Re: Sumar todos los numeros entre el 1 y el valor que le damos a la funcion [python]
Publicado por: 0x5d en 19 Febrero 2012, 01:48 am
En realidad es muy sencillo:

Código:
contador = 1
total = 0
while contador <= num
{
    total = total + contador
    contador = contador + 1
}
OFF: Tiempo sin saber de ti !

Código
  1. # -*- coding: utf-8 -*-
  2. addNumbers = lambda start, end: sum(range(start,end+1))
  3. print addNumbers(input("Inicio >>"),input("Fin >>"))
Eso con lambda() y con sum():
Código
  1. # -*- coding: utf-8 -*-
  2. def addNumbers(start, end):
  3.  return sum(range(start,end+1))
  4.  
  5. print addNumbers(input("Inicio >>"),input("Fin >>"))

Saludos :D