Podział liczby na sumy

0

Cześć walczę z programem, który dowolną liczbę ma zapisać w postaci sum. Np. 4 = 1 + 1 + 1 + 1 = 1 + 3 = 2 + 2 = 1 + 1 + 2.

Napisałem takie coś:

#include <iostream>

using namespace std;

const int n = 4; //prosze nie bić za zmienną globalną
int tab[n];

void skladniki(int liczba, int ktory) {

    if (liczba == 1) {
        
        //wypisz();

    } else {
        
        for (int i = 1; i < liczba; i++) {

            skladniki(liczba - 1, ktory);
        }
        
    } 
}

int main() {

    skladniki(n, 1);
    return 0;
}

 

Widzę, że zliczam niektóre przypadki kilka razy, nie wiem też w jaki sposób wypisać moje wyniki. Proszę o jakieś wskazówki.
Odnosnie tego

int ktory

to zamysł był aby wykorzystać to do tablicy ale średnio wiem jak :c

0

ten kod nawet nie wypisuje nieprawidłowych wyników, o których piszesz, więc wygląda dość podejrzanie (że ilość włożonej przez ciebie pracy jest zbyt bliska ilości pracy włożonej w założenie tego wątku).

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