Małe wyzwanie - liczby

0

Witam serdecznie.

Czy ktoś z obecnych tutaj forumowiczów jest w stanie rozwiązać to zadanko ?:)

Muszę skonstruować algorytm wyczerpujący z nawrotami, generujący wszystkie podziały liczby naturalnej C gdzie np. C=6 i możemy przedstawić ją na cztery sposoby:
1+2+4
1+5
2+4
6

Najprawdopodobniej dla Was to nie problem a dla mnie to parę godzin niezłego główkowania bez efektów.

Z góry bardzo dziękuję za wszelką pomoc.
Pozdrawiam serdecznie
Pablos

0

? Na moje oko to C=6 mozna przedstawić na całą masę sposobów:
1+1+1+1+1+1
1+1+1+1+2
1+1+1+3
1+1+4
1+5
1+1+2+2
1+2+3
2+2+2
etc
Chyba że chodziło ci o różne liczby w sumie, ale to nadal daje nam znacznie wiecej opcji niż pokazałeś...
Możesz to puścić chamską rekurencją gdzie w argumencie funkcji będzie: liczba oraz ilość liczb za pomocą których mamy przedstawiać tzn np.
funkcja(6,1) zwróci nam 6
funkcja(6,2) zwróci nam 1+5, 2+4, 3+3
funkcja(6,3) zwróci nam 1+1+4, 1+2+3, 2+2+2,

Ale da radę to zrobić dynamicznie, robiąc tablicę N elementową (gdzie N to nasza liczba) i określać w każdej komórce na ile sposobów można zapisać daną liczbę np.
tab[0] = 0
tab[1] = 1
tab[2] = 2 (bo mamy 1+1, oraz 2)
tab[3] = 3 (bo mamy 1+1+1, 1+2, 3)
w jaki sposób wypelniać tablicę? Algorytm wydawania reszty ;]

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