Это коса Паскаля:
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. Это должен быть последовательный выбор во всех возможных входах.
Выход
Выведите Косу Паскаля до nth-го столбца. Пробелы должны точно соответствовать приведенному выше примеру макета, за исключением того, что вы можете заполнить более короткую строку (и) длиной более длинной строки (ей) пробелами и при желании вывести один завершающий перевод строки.
Другими словами, каждый столбец должен быть точно такой же ширины, как число (или пара равных чисел) в этом столбце, числа в последовательных столбцах не должны перекрываться, и между столбцами не должно быть пробелов.
Вы можете либо распечатать результат в 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