
Sum of Distinct Cubes

Positive integers can be broken down into sums of distinct cubes of positive integers, sometimes in multiple different ways. Your function should find and return the descending array of distinct cubes whose sum equals the given positive integer n. If it is impossible to express n as a sum of distinct cubes, return null.
If n allows several breakdowns into sums of distinct cubes, the function must return the lexicographically highest solution that starts with the largest possible first number, followed by the lexicographically highest representation of the rest of the number n-a*a*a. For example, called with n = 1729, this function should return [12, 1] instead of [10, 9].
Input: Positive integer (number).
Output: Array of integers (number) or null.
Examples:
assert.deepStrictEqual(sumOfCubes(1729), [12, 1]); assert.deepStrictEqual(sumOfCubes(8), [2]); assert.deepStrictEqual(sumOfCubes(11), null);
Precondition:
- n > 0.
The mission was taken from Python CCPS 109. It is taught for Ryerson Chang School of Continuing Education by Ilkka Kokkarinen