Разбираемся с рекурсиейРекурсия + кэшированиеmedium

Perfect Squares

Каждое целое число можно представить как сумму точных квадратов. Точный квадрат — это такое число, которое получается, если возвести целое число в квадрат.

Например:

  • 15 = 3² + 2² + 1²
  • 20 = 2² + 4²
  • 25 = 5²

При этом иногда есть несколько способов это сделать. Например, 25 это еще и 3² + 4² или сумма из 25 слагаемых 1² или еще куча вариантов.

Напишите функцию perfectSquares(num), возвращающую массив со слагаемыми — точными квадратами, из которых можно составить число num.

Если таких вариантов несколько, нужно вернуть массив с наименьшей длиной. Если массивов с наименьшей длиной несколько, можно вернуть любой из них с элементами в любом порядке.

console.log(perfectSquares(15)); // [9, 4, 1] console.log(perfectSquares(20)); // [4, 16] console.log(perfectSquares(25)); // [25]