Foro de elhacker.net

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
  1. suman=list()
  2.    aux=list()
  3.    cont=0
  4.    if n==1:
  5.        return suman
  6.  
  7.    for i in range(n):
  8.        aux.append(1)
  9.    suman.append(tuple(aux))
  10.    for j in range(2,n):
  11.        for z in suman:
  12.            z=list(z)
  13.            for l in z:
  14.                if l==1:
  15.                    z.remove(1)
  16.                    cont+=1
  17.                    if cont==j:
  18.                        z.append(j)
  19.                        suman.append(tuple(z))
  20.    print(suman)
  21.    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!