[Problema en C++] Problema Combinación Suma Recursiva

Tema en 'Programación & Programación Web' iniciado por ~Walker, 12 Nov 2015.

  1. ~Walker

    ~Walker Usuario Habitual nvl.3 ★
    37/41

    Registrado:
    12 Oct 2010
    Mensajes:
    17.161
    Me Gusta recibidos:
    1
    Hola estimados
    Necesito su ayuda urgente!
    en la u tengo que hacer un algoritmo recursivo que calcula
    las combinaciones de varios números para que sumen otro número....


    La entrada (input) es solo una línea con varios números, separados por un espacio de la forma A B 1 2 3 4 5

    siendo
    A: (el total de la suma a buscar) de las combinaciones de números después de B.
    B: la cantidad de números que vienen a continuación.

    ejemplo:

    A=5 ; B=7

    input: 5 7 1 1 2 3 3 5 7
    output: debería tirarme
    5
    1+1+3
    2+3




    La idea es buscar las combinaciones entre los n números que sumen t .


    se deben imprimir los números
    encontrados separados entre ellos por un signo más (´+´). Cada combinación debe ir en una línea.
    no importa que se repitan las combinaciones ni el orden.
    Sí importa, como la lista será ingresada siempre en orden creciente de los números, las combinaciones sean en orden creciente también.


    Además, si no existe ninguna combinación, se debe imprimir “no hay combinaciones”.

    he estado hartos dias craneando , como lo puedo hacer
    pero estoy quedando corto de ídeas
    de antemano muchas gracias
    cualquier ayuda es bien recibida!
     
  2. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Registrado:
    31 May 2008
    Mensajes:
    2.792
    Me Gusta recibidos:
    14
    ni me acuerdo de programar en C xD, pero te doy la idea base

    segun te entendi los numeros entrarian algo asi {1 2 3 4 5 6 7 8 5 6 1 52 5} (separados por un espacio)

    numeros = {1 2 3 4 5 6 7 8 5 6 1 52 5} //aqui tenemos nuestros numeros que se ingresaron
    x = 0; // x es nuestra variable temporal
    foreach(explode(' ', numeros) as num){ //explode (funcion de php, tendras que buscar su equivalente en C++) convierte en array la variable que pasas en base al separador que indicas, en este caso espacio

    x=x+num //aqui sumamos los numeros 1 y otra vez hasta terminar, num es el numero del array que se recorre en el momento, en la primera vuelta es 1, en la segunda 2, en la tercera 3, etc y se suma a x que tiene el resultado de las sumas anteriores, cuando termina el foreach ya tienes todo sumado

    }