Ćwiczenie 17: Rekursja (2)

Zadanie główne

Napisz procedurę, która wypisze dla zadanej liczby n jej wszystkie rozkłady na sumy liczb naturalnych większych od zera ustawionych w kolejności nierosnącej.
Np. dla n = 3:
3 = 3
3 = 2+1
3 = 1+1+1

Wskazówka 1
Użyj dodatkowej tablicy do przechowywania początków rozkładów. Uważaj, aby nie kopiować tej tablicy przy każdym wywołaniu rekurencyjnym!

Wskazówka 2
Funkcja rekurencyjna powinna mieć parametr wskazujący jak duże składniki mogą być użyte do rozkładu pozostałej liczby.

Zadanie 2

Analogicznie, tylko że interesuje nas liczba podziałów na sumy składników będących liczbami Fibonacciego. Można oczywiscie zawczasu stablicować sobie liczby Fibonacciego. To będzie rzecz jasna prosta modyfikacja podanego rozwiązania.

Zadanie 3

Analogicznie, tylko że liczby Fibonacciego muszą być różne.