Sumar todos los numeros entre el 1 y el valor que le damos a la funcion [python]

Iniciado por bichotg, 16 Febrero 2012, 22:21 PM

0 Miembros y 1 Visitante están viendo este tema.

bichotg

Hola !!

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


CitarCreate 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 (python) [Seleccionar]
def addNumbers(num):
        total=0
        for num in range(num+1):
            total=total+num
            return total



Saludos!!!

leogtz

En realidad es muy sencillo:

contador = 1
total = 0
while contador <= num
{
    total = total + contador
    contador = contador + 1
}
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

skapunky

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  ;)
Killtrojan Syslog v1.44: ENTRAR

bichotg

Cita de: Leo Gutiérrez. en 17 Febrero 2012, 03:49 AM
En realidad es muy sencillo:

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 (python) [Seleccionar]
def addNumbers(num):
    total=0
    i=1
    while i<=num:
        total=total+i
        i=i+1
    return total



Cita de: 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  ;)


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

Código (python) [Seleccionar]
def addNumbers(num):
total = 0
i = 1
while


el principo que te marcan no se puede cambiar


Saludosss


0x5d

Cita de: Leo Gutiérrez. en 17 Febrero 2012, 03:49 AM
En realidad es muy sencillo:

contador = 1
total = 0
while contador <= num
{
    total = total + contador
    contador = contador + 1
}

OFF: Tiempo sin saber de ti !


Código (python) [Seleccionar]

# -*- coding: utf-8 -*-
addNumbers = lambda start, end: sum(range(start,end+1))
print addNumbers(input("Inicio >>"),input("Fin >>"))

Eso con lambda() y con sum():
Código (python) [Seleccionar]

# -*- coding: utf-8 -*-
def addNumbers(start, end):
  return sum(range(start,end+1))
 
print addNumbers(input("Inicio >>"),input("Fin >>"))


Saludos :D
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !