Dodawanie tylu liczb ile jest ich w tablicy c++.

0

Witam
Chciałbym napisać program który będzie dodawał liczby wprowadzone do konsoli na przykładzie:
podaje za kazdym razem różną ilość liczb
program ma sprawdzać czy po dodaniu wszystkich możliwych kombinacji można otrzymać pewną liczbę.


podaj szukaną liczbę
50
podaj ilość liczb.
3
podaj pierwszą liczbę
5
podaj drugą liczbę
8
podaj trzecią liczbę
13

5+8=13
5+13=18

8+5=13
8+13=21

13+5=18
13+8=21


5+8+13=17

odpowiedz programu: z tych liczb nie da się ułożyć szukanej liczby

w przypadku większej ilosci liczb wiecej obliczen itp

z góry dziękuję za wszystkie porady

1
  1. Ja bym zamienił podaj pierwszą liczbę: na podaj liczbe nr.1: - mniej pisania, nie musisz nic trzymać w tablicy, ani z polskimi znakami się użerać.
  2. Najpierw zapisujesz szukaną liczbę i liczbę wczytywanych liczb do dwóch zmiennych. Następnie tworzysz tablicę na wczytywane liczby o rozmiarze wcześniej wczytanym i po kolei w pętli wczytujesz liczby do tablicy(po to to nr.i). Później sortujesz tą tablicę i bierzesz sobie liczby po kolei, sumujesz i porównujesz z szukaną. Jak coś znajdziesz to informujesz co znalazłeś, jak nie to nie. To jest chyba najdłuższe rozwiązanie(czasowo), ale i najprostsze(do zrozumienia).
0

... zaś najszybsze to programowanie dynamiczne.

0

To mój kod który napisałem do tej pory:

int main()
{
    vector<int>tablica;

    int a;
    int suma;
    cout<<"podaj ilosc liczb:";
    cin>>a;

    for(int i=0;i<a;i++)
    {
        int liczba;
        cout<<"podaj liczbe:";
        cin>>liczba;
        tablica.push_back(liczba);
    }

    for(int j=0;j<tablica.size();j++)//col
    {
        for(int k=0;k<tablica.size();k++)
        {
            suma=tablica[j]+tablica[k];
            cout<<tablica[j]<<"+"<<tablica[k]<<"="<<suma<<endl;
        }
    }

    return 0;
}
 

głównym moim problemem jest napisanie algorytmu który by dodawał każdą z liczb a nie tylko dwie, ale w dynamiczny sposób ponieważ za każdym razem można wprowadzić różną ilość liczb.

0

Zapozna się z kodowaniem binarnym, liczby 3 bitowe to
001
010
011
100
101
110
111
Bitów ma być tyle ile masz liczb.
Jeżeli bit jest 1 to dodajemy tą liczbę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1