Это коса Паскаля:
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
th-го столбца. Пробелы должны точно соответствовать приведенному выше примеру макета, за исключением того, что вы можете заполнить более короткую строку (и) длиной более длинной строки (ей) пробелами и при желании вывести один завершающий перевод строки.
Другими словами, каждый столбец должен быть точно такой же ширины, как число (или пара равных чисел) в этом столбце, числа в последовательных столбцах не должны перекрываться, и между столбцами не должно быть пробелов.
Вы можете либо распечатать результат в STDOUT (или ближайшую альтернативу), либо, если вы напишите функцию, вы можете вернуть либо строку с тем же содержимым, либо список из трех строк (по одной для каждой строки).
Более подробная информация
Вы можете предположить, что n
он не будет меньше индекса первого столбца (поэтому не меньше 0
или 1
зависит от вашей индексации). Вы также можете предположить, что последнее число в косе меньше 256 или самое большое число, представляемое родным целочисленным типом вашего языка, в зависимости от того, что больше . Поэтому, если ваш собственный целочисленный тип может хранить только байты, вы можете предположить, что наибольшее значение n
равно 9
или 10
(в зависимости от того, используете ли вы 0- или 1-основанное n
), и если оно может хранить 32-разрядные целые числа со знаком, n
будет самое большее 33
или 34
.
Применяются стандартные правила игры в гольф . Самый короткий код выигрывает.
OEIS
Вот несколько соответствующих ссылок OEIS. Конечно, они содержат спойлеры для разных способов генерации чисел в косе:
Тестовые случаи
В этих тестах используется 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