Це тасьма Паскаля:
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