В этом задании вы должны взять два числа (разделенных пробелом) в качестве входных и выходных ASCII прямоугольный прямоугольник, состоящий из x
s.
Первое число будет шириной и высотой треугольника, который вы должны вывести. Второе число будет указывать, в каком углу будет находиться правильный угол. Углы пронумерованы от 1 до 4, начиная с верхнего левого угла и следуя порядку чтения на английском языке:
1 2
3 4
Например (входы и их соответствующие треугольные выходы):
INPUT | 3 1 | 3 2 | 3 3 | 3 4
------+-----+-----+-----+----
OUT- | xxx | xxx | x | x
PUT | xx | xx | xx | xx
| x | x | xxx | xxx
Выходные данные вашей программы должны точно соответствовать этим примерам.
Ввод всегда будет действителен: первое число будет целым числом ≥1, а второе число будет 1, 2, 3 или 4.
Это код-гольф ; самый короткий код (в количестве символов) выигрывает.
code-golf
geometry
generation
Дверная ручка
источник
источник
(⍎⍵⌷'functions')
часть, прежде чем он решит, как интерпретировать все утверждение? Рассмотрим для примера1+(⍵⌷'12+')|40
. Он даже не узнает,|
является ли он монадическим или диадическим, перед тем, как⍎
заключить в скобки часть. Все абстрактное синтаксическое дерево изменяется в зависимости от оценки.1+(⍎⍵⌷'12+')|40
... не позволит мне редактировать.f ← { [ }
не дает ошибки!f 1÷0
дает ... ошибка домена ! (из-за деления на ноль). Только когда вы вызываете функцию, какf 123
вы получаете синтаксическую ошибку . Вот: imgur.com/jtmdi4BРубин,
11611510996Я начну с моего собственного решения.
Я просто знаю, что я получу 30-символьное решение GolfScript почти мгновенно: P
Спасибо Minitech за бритья 19 символов (вау)!
источник
==0
, вы можете использовать<1
.?x*x
спасает другого персонажа. Кроме того,puts i[1]%2<1?t.rjust(s):t}
сделал бы трюк, верно??
? Это необходимо? Кроме того, я думаю, что вы можете сделать то же самое сr=
.1?
как один токен, а конечный пробел, потому что в противном случае он разбирается как?t
(что эквивалентно't'
). Как вы предлагаете реструктурироватьr
часть?GolfScript (
3433 символа)Жаль, что углы не нумеруются по очереди, потому что это позволило бы более элегантно построить один массив, а затем повернуть его
n
раз:источник
C # - 195
отформатирован:
источник
Golfscript,
39 3635 персонажейживая демонстрация: http://golfscript.apphb.com/?c=OyczIDInCn5cOnkseycgJyoneCd5Kit5PC0xIDIkPyV9JS0xQDI%2BPyVuKgo%3D
Жаль, что это не 30 символов в соответствии с просьбой
источник
1${-1%}*
с-1 2$?%
и\2>{-1%}*
с\2>-1\?%
даст вам 2 символа.-1 2
может быть написано0~2
~(\:y,{{>'x '=}+y,%0~2$?%}%\2&(%n*
Mathematica 122 (104?)
Под либеральным толкованием «результата» сработает следующее (104 символа).
Если бы вход в виде списка был разрешен, было бы достаточно следующего (75 символов):
источник
J,
595542383736 символовЕсли разрешено иметь ввод в конце программы:
Если нет (для дополнительных 3 символов):
Применение:
или
Я думаю, что это может быть немного короче, так как большинство символов в скобках и заглавных буквах, чтобы сохранить его в неявном стиле.
Редактировать
Используя герунду и глагол повестки дня отрубил несколько символов, но там все еще слишком много заглавных букв, на мой взгляд.
Редактировать 2
Это немного больше похоже на это. Сброс повестки дня для списка того, сколько вращений требуется, избавляет от большинства дополнительных скобок и нескольких заглавных букв.
Редактировать 3
Избавился от последней посторонней крышки и пары скобок в процессе. Нужно найти более дешевый способ кодирования необходимого количества оборотов.
Редактировать 4 Используйте префикс вместо суффикса, чтобы отрубить символ. Разрешает другой способ создания списка, который не сохраняет никаких символов. Мудак.
Редактировать 5
Использование формулы, чтобы отрубить другого персонажа. Все еще чувствую, что этот бит может быть короче.
источник
Python 106 символов
источник
Python 3, 91
На основании ответа Абхиджита.
Изменено создание выходной строки, чтобы избежать суммы строк и уродливых
1
s вrange
. Python 3 избавляется отraw_
inraw_input
, но делает необходимым использовать//
для целочисленного деления и для добавления paranthesesprint
, чтобы сохранить только один символ.источник
Котенок , 140
Ungolfed:
Доказательство того, что мне нужно реализовать перегрузку и конкретизировать стандартную библиотеку.
источник