Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: informatico96 en 25 Abril 2017, 13:47 PM

Título: Duda de un programa
Publicado por: informatico96 en 25 Abril 2017, 13:47 PM
Hola buenas,
Necesito ayuda con un problema que me ha surgido al hacer un ejercicio. Este trata de que, en python, nos pasan un número por parametro y le tenemos que devolver todas las posibles combinaciones de números enteros positivos que sumados den el número inicial (ej: nos dan el numero 4 y devolvemos ((1, 1, 1, 1), (1, 1, 2), (1, 3), (2, 2))).
El caso es que lo he intentado hacer pero no funciona. Ne cesito ayuda.
Mi código es:

Código (python) [Seleccionar]
suman=list()
    aux=list()
    cont=0
    if n==1:
        return suman
   
    for i in range(n):
        aux.append(1)
    suman.append(tuple(aux))
    for j in range(2,n):
        for z in suman:
            z=list(z)
            for l in z:
                if l==1:
                    z.remove(1)
                    cont+=1
                    if cont==j:
                        z.append(j)
                        suman.append(tuple(z))
    print(suman)
    return suman


Espero que me podais ayudar.

Un saludo

MOD: Etiqueta GeSHi.
Título: Re: Duda de un programa
Publicado por: MCKSys Argentina en 25 Abril 2017, 14:10 PM
El primer resultado de Google: http://stackoverflow.com/questions/2065553/get-all-numbers-that-add-up-to-a-number (http://stackoverflow.com/questions/2065553/get-all-numbers-that-add-up-to-a-number)

Saludos!