Це тасьма Паскаля:
1 4 15 56 209 780 2911 10864 40545 151316 564719
1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841
1 4 15 56 209 780 2911 10864 40545 151316 564719
Я цілком це придумав. Наскільки у Блейза Паскаля не було коси, і якщо він це зробив, то, ймовірно, було зроблено з волосся замість цифр.
Це визначено так:
- Перший стовпчик має одинарний
1
посередині. - Другий стовпчик має
1
вгорі та внизу. - Тепер ми по черзі ставимо число в середині або дві копії числа вгорі і внизу.
- Якщо число йде вгорі або внизу, це буде сума двох сусідніх чисел (наприклад
56 = 15 + 41
). Якщо трохи нахилити голову, це як крок у трикутнику Паскаля. - Якщо число проходить посередині, це буде сума всіх трьох сусідніх чисел (наприклад
41 = 15 + 11 + 15
).
Вашим завданням буде надрукувати (якусь частину) цю косу.
Вхідні дані
Вам слід написати програму або функцію, яка отримує єдине ціле число n
, даючи індекс останнього стовпця, який виводиться.
Ви можете вибрати, чи відповідає перший стовпець (друкуючи лише один 1
на середній лінії) n = 0
або n = 1
. Це повинно бути послідовним вибором для всіх можливих входів.
Вихід
Виведіть косу Паскаля до n
стовпця. Пробіл повинен точно відповідати наведеному вище прикладу, за винятком того, що ви можете прокладати коротші рядки на довжину довших рядків з пробілами, і ви можете необов'язково виводити одну зворотну лінію.
Іншими словами, кожен стовпець повинен бути точно таким же широким, як число (або пара рівних чисел) у цьому стовпчику, числа в послідовних стовпцях не повинні перетинатися, а між стовпцями не повинно бути пробілів.
Ви можете або надрукувати результат в STDOUT (або найближчій альтернативі), або якщо ви пишете функцію, ви можете повернути або рядок з однаковим вмістом, або список з трьох рядків (по одному для кожного рядка).
Детальніше
Ви можете припустити, що n
він не буде меншим за індекс першого стовпця (тобто не менше 0
або 1
залежно від вашої індексації). Ви також можете припустити, що останнє число в косі менше 256 або найбільше число, яке може бути представлене цілим типом нашої мови, залежно від того, що більше . Отже, якщо ваш власний цілочисельний тип може зберігати лише байти, ви можете припустити, що найбільшим n
є 9
або 10
(залежно від того, ви використовуєте 0- або 1 n
), і якщо він може зберігати підписані 32-бітні цілі числа, n
буде максимум 33
або 34
.
Діють стандартні правила гольф-коду . Виграє найкоротший код.
OEIS
Ось декілька відповідних посилань OEIS. Звичайно, вони містять спойлери для різних способів отримання чисел у косі:
- Зверху / знизу: A001353 або A010905 або A106707 або A195503
- Середній: A001835 або A079935
- Обидва: A002530
Випробування
У цих тестових випадках використовується 1-бальна індексація. Кожен тестовий випадок - чотири рядки, перший - вхідний, а три інші - вихідні.
1
1
---
2
1
1
1
---
3
1
1 3
1
---
5
1 4
1 3 11
1 4
---
10
1 4 15 56 209
1 3 11 41 153
1 4 15 56 209
---
15
1 4 15 56 209 780 2911
1 3 11 41 153 571 2131 7953
1 4 15 56 209 780 2911
---
24
1 4 15 56 209 780 2911 10864 40545 151316 564719 2107560
1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841
1 4 15 56 209 780 2911 10864 40545 151316 564719 2107560