47 lines
1.3 KiB
Markdown
47 lines
1.3 KiB
Markdown
![]() |
---
|
|||
|
id: 5900f4151000cf542c50ff28
|
|||
|
title: >-
|
|||
|
Задача 169: Дослідження кількості різноманітних способів, якими можна записати число як суму степенів 2
|
|||
|
challengeType: 5
|
|||
|
forumTopicId: 301803
|
|||
|
dashedName: >-
|
|||
|
problem-169-exploring-the-number-of-different-ways-a-number-can-be-expressed-as-a-sum-of-powers-of-2
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
Визначте, що $f(0)=1$ та $f(n)$ буде кількістю різних способів, за якими $n$ може бути виражено у вигляді суми цілих чисел 2 степеня використовуючи кожен степінь не більше ніж двічі.
|
|||
|
|
|||
|
Наприклад: $f(10)=5$, оскільки існує 5 різних способів виразити 10:
|
|||
|
|
|||
|
$$\begin{align} & 1 + 1 + 8 \\\\ & 1 + 1 + 4 + 4 \\\\ & 1 + 1 + 2 + 2 + 4 \\\\ & 2 + 4 + 4 \\\\ & 2 + 8 \end{align}$$
|
|||
|
|
|||
|
Що таке $f({10}^{25})$?
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`numberOfWaysToExpress()` має відображати `178653872807`.
|
|||
|
|
|||
|
```js
|
|||
|
assert.strictEqual(numberOfWaysToExpress(), 178653872807);
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function numberOfWaysToExpress() {
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
numberOfWaysToExpress();
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|