Сегодня мы собираемся сделать шестиугольник ASCII. Вы должны написать программу или функцию, которая принимает положительное целое число n и выводит шестиугольную сетку размера n , состоящую из звездочек. Например, шестиугольник размера 2 выглядит так:
* *
* * *
* *
В то время как шестиугольник размера 3 выглядит так:
* * *
* * * *
* * * * *
* * * *
* * *
Вы можете использовать любой из методов ввода и вывода по умолчанию , например, STDIO / STDOUT, аргументы функций и возвращаемые значения или чтение / запись файла.
Вы можете предположить, что ввод всегда действителен, поэтому, если он не является положительным целым числом, ваша программа может делать все, что вы хотите. Вы действительно однако должны обрабатывать особый случай размера 1 шестиугольник, который бывает один звездочка:
*
Допускаются начальные и конечные пробелы, если результат визуально одинаков.
Примеры:
1:
*
2:
* *
* * *
* *
3:
* * *
* * * *
* * * * *
* * * *
* * *
4:
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
5:
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
6:
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * *
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
12:
* * * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * *
* * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * *
* * * * * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * *
Как обычно, это код-гольф , поэтому применяются стандартные лазейки , и вы должны попытаться написать максимально короткую программу, измеряемую в байтах. Конечно, некоторые языки по своей природе короче или длиннее других, поэтому помните, что цель состоит не в том, чтобы иметь самое короткое общее число байтов, а в том, чтобы превзойти представления на тех же или похожих языках.
Пусть победит лучший гольфист!