66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
![]() |
---
|
|||
|
id: 5900f5101000cf542c510022
|
|||
|
title: 'Завдання 419: Послідовність «глянь і скажи»'
|
|||
|
challengeType: 5
|
|||
|
forumTopicId: 302088
|
|||
|
dashedName: problem-419-look-and-say-sequence
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
Послідовність "глянь і скажи" виглядає так: 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213213211, ...
|
|||
|
|
|||
|
Послідовність починається з 1 та всі наступні числа отримуємо за допомогою послідовного опису цифр попередньо числа.
|
|||
|
|
|||
|
Краще рахувати вголос:
|
|||
|
|
|||
|
1 — це "одна одиниця" $→ 11$
|
|||
|
|
|||
|
11 — це "дві одиниці" $→ 21$
|
|||
|
|
|||
|
21 — це "одна двійка та одна одиниця" $→ 1211$
|
|||
|
|
|||
|
1211 — це "одна одиниця, одна двійка і дві одиниці" $→ 111221$
|
|||
|
|
|||
|
111221 — це "три одиниці, два двійки та одна одиниця" $→ 312211$
|
|||
|
|
|||
|
...
|
|||
|
|
|||
|
Визначте $A(n)$, $B(n)$ і $C(n)$ як кількість одиниць, двійок і трійок у елеманта $n$' послідовності відповідно. Одиниця моє підтвердити, що $A(40) = 31\\,254$, $B(40) = 20\\,259$ та $C(40) = 11\\,625$.
|
|||
|
|
|||
|
Знайти: $A(n)$, $B(n)$ та $C(n)$ для $n = {10}^{12}$. Дайте відповідь за модулем $2^{30}$ як рядок, а також розділіть значення $A$, $B$ та $C$ комами. Наприклад,. для $n = 40$ відповідь така: `31254,20259,11625`.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`lookAndSaySequence()` має повернути рядок.
|
|||
|
|
|||
|
```js
|
|||
|
assert(typeof lookAndSaySequence() === 'string');
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
`lookAndSaySequence()` має повернути рядок `998567458,1046245404,43363922`.
|
|||
|
|
|||
|
```js
|
|||
|
assert.strictEqual(lookAndSaySequence(), '998567458,1046245404,43363922');
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function lookAndSaySequence() {
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
lookAndSaySequence();
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|