Opis
Przed tymi liczbami było jeszcze wiele innych wyzwań i mam nadzieję, że nie ma ich wśród nich.
N th liczby trójkątnego jest równa sumie wszystkich liczb naturalnych aż do n , proste rzeczy. Istnieje strona wikipedia i wpis w OEIS , dla tych, którzy chcą się lepiej dowiedzieć.
Teraz Gauss odkrył, że każda liczba naturalna może być wyrażona jako suma trzech liczb trójkątnych (w tym 0
), i dobrze jest mieć jedną liczbę więcej niż raz, np 0 + 1 + 1 = 2
.
Wyzwanie
Twoim zadaniem jest napisanie programu lub funkcji, z podaniem liczby naturalnej (w tym 0
), wypisuje trzy liczby trójkątne, które sumują się do argumentu. Możesz wydrukować liczby rozdzielone spacjami, tablicą lub inną metodą, którą lubisz. Jednakże, jest zakazane używać jakichkolwiek funkcji Builtin bezpośrednio uzyskać układ, zakres lub dowolną inną formę zbioru zawierającą listę numerów trójkątnych (na przykład pojedynczy atom, który otrzymuje się zakres).
Przypadki testowe
9 -> 6 + 3 + 0 or 3 + 3 + 3
12 -> 6 + 6 + 0 or 6 + 3 + 3 or 10 + 1 + 1
13 -> 6 + 6 + 1
1 -> 1 + 0 + 0
0 -> 0 + 0 + 0
Uwaga: Jeśli istnieje więcej niż jedna możliwa kombinacja, możesz wydrukować dowolną lub wszystkie, ale musisz wydrukować dowolną kombinację tylko raz, eliminując wszystkie kombinacje wynikające z zmiany kolejności innych kombinacji. Byłbym wdzięczny za link do wypróbowania i wyjaśnienie. Naprawdę uwielbiam patrzeć, jak rozwiązujesz problem;)
To jest golf golfowy , więc obowiązują standardowe luki. Niech wygra najkrótsza odpowiedź w bajtach!
a
nie zawsze będzie liczbą trójkątną
n
i zwracają listę pierwszych n
numerów trójkątów ? To wydaje się raczej skierowane przeciwko konkretnemu językowi, chociaż nie wiem który.