Что более подходящее, чем Спираль для пасхальных кодов для гольфа?
Ну, я думаю, почти все.
Задача
Самый короткий код по количеству символов, чтобы отобразить симпатичную ASCII-спираль, состоящую из звездочек ('*').
Ввод - это единственное число, R
, которое будет размером x спирали. Другое измерение (y) всегда R-2
. Программа может считать R
всегда нечетной и >= 5.
Некоторые примеры:
Input
7
Output
*******
* *
* *** *
* * *
***** *
Input
9
Output
*********
* *
* ***** *
* * * *
* *** * *
* * *
******* *
Input
11
Output
***********
* *
* ******* *
* * * *
* * *** * *
* * * * *
* ***** * *
* * *
********* *
Количество кодов включает ввод/вывод (т.е. полную программу). Любой язык разрешен.
Мой легко битый 303-символьный длинный пример Python:
import sys;
d=int(sys.argv[1]);
a=[d*[' '] for i in range(d-2)];
r=[0,-1,0,1];
x=d-1;y=x-2;z=0;pz=d-2;v=2;
while d>2:
while v>0:
while pz>0:
a[y][x]='*';
pz-=1;
if pz>0:
x+=r[z];
y+=r[(z+1)%4];
z=(z+1)%4; pz=d; v-=1;
v=2;d-=2;pz=d;
for w in a:
print ''.join(w);
Теперь введите Spiral...