Rozkłady liczb na sumy

0

Witam, mam takie zadanie:

Program konwersuje z użytkownikiem i wczytuje pary liczb naturalnych m, n (para 0 0 oznacza koniec wykonania). Dla każdej pary generuje wykaz rozkładów liczby m na sumy liczb naturalnych nie większych od n. Na przykład dla pary: 5 3 program powinien wygenerować:
1+1+1+1+1
2+1+1+1
2+2+1
3+1+1
3+2

0

Z czym masz problem?

0

Zrobiłem tak:

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
signed int liczba;

cout<<"Podaj liczbe:\t";
cin>>liczba;
cout<<endl<<liczba<<" = ";
do
{
if(liczba == 9 || liczba > 9)
{
    cout<<"9";
    if(liczba > 9)
        cout<<" + ";
}

else if(liczba == 8)
    cout<<"8";

else if(liczba == 7)
    cout<<"7";

else if(liczba == 6)
    cout<<"6";

else if(liczba == 5)
    cout<<"5";

else if(liczba == 4)
    cout<<"4";

else if(liczba == 3)
    cout<<"3";

else if(liczba == 2)
    cout<<"2";

else if(liczba == 1)
    cout<<"1";

    liczba-=9;
}
while(liczba == 9 || liczba > 9);
cout<<endl<<endl<<endl<<"KONIEC!";
getch();
return liczba;

}

Ale podobno to źle :((

0

No a czy twój program wypisuje cokolwiek zbliżonego do tego co ma wypisywać? o_O Podpowiem że hasło klucz to tutaj rekurencja.

0

No właśnie mało, ale nie wiem jak się za to zabrać :(

0

Typ signed jest domyslny a takie warunki pisane ciagiem zastepoj petlami

0

Pierwsza liczba może być od 1 do 3 lub do Sumy. Resztę określasz dokładnie w ten sam sposób.

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