53 lines
1.6 KiB
Markdown
53 lines
1.6 KiB
Markdown
![]() |
---
|
|||
|
id: 5900f4951000cf542c50ffa8
|
|||
|
title: 'Завдання 297: Теорема представлення Цекендорфа'
|
|||
|
challengeType: 5
|
|||
|
forumTopicId: 301949
|
|||
|
dashedName: problem-297-zeckendorf-representation
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
Кожне нове значення у послідовності Фібоначчі утворюється додаванням двох попередніх значень.
|
|||
|
|
|||
|
Починаючись з 1 і 2, перші 10 значень будуть такими: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89.
|
|||
|
|
|||
|
Кожне додатне ціле число можна однозначно записати як суму непослідовних значень послідовності Фібоначчі. Наприклад, 100 = 3 + 8 + 89.
|
|||
|
|
|||
|
Така сума називається представленням числа Цекендорфа.
|
|||
|
|
|||
|
Для будь-якого цілого числа $n>0$, нехай $z(n)$ буде кількістю значень в представленні Цекендорфа $n$.
|
|||
|
|
|||
|
Таким чином, $z(5) = 1$, $z(14) = 2$, $z(100) = 3$ etc.
|
|||
|
|
|||
|
Також, для $0 < n < {10}^6$, $\sum z(n) = 7\\,894\\,453$.
|
|||
|
|
|||
|
Знайдіть $\sum z(n)$ для $0 < n < {10}^{17}$.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`zeckendorfRepresentation()` має повернути `2252639041804718000`.
|
|||
|
|
|||
|
```js
|
|||
|
assert.strictEqual(zeckendorfRepresentation(), 2252639041804718000);
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function zeckendorfRepresentation() {
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
zeckendorfRepresentation();
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|