/I///,*/+,//+/I//**,/,A//*/A//,//,I
オンラインでお試しください!
symbolを使用して単項で入力を取り*
、symbolを使用して単項で出力しA
ます。これは、///(meta)を含む特定の言語で許可されます
///に入力を取得する方法はないため、入力はハードコーディングする必要があります。
/I/«put input here»//,*/+,//+/I//**,/,A//*/A//,//,I
入力= 4の場合
説明:(読む前に、の唯一の構文///
が/pattern/replacement/
であることに注意する必要があります; これはpattern
、replacement
; によるすべての出現を置換し\
、エスケープします;他の文字は出力に出力されます)
のためにn=4
:
/I/****//,*/+,//+/I//**,/,A//*/A//,//,I Start program.
/I/****/ Replace all `I` in the program by the input.
/,*/+,//+/****//**,/,A//*/A//,//,**** Remaining part of the program.
/,*/+,/ Use the `,` as a scanner, scan through `*` after it and convert to `+`.
/+/****//**,/,A//*/A//,//++++, Note that only `*` in the second group is affected.
/+/****/ Replace all `+` (which is just created) by `n` asterisks (from the first `I` group)
/**,/,A//*/A//,//****************, Now at the last of the program before the `,` there are `n²` asterisks.
/**,/,A/ Scan the `,` to the left to perform division by 2:
replace each `**` by a `A` as the scanner `,` pass through.
/*/A//,//,AAAAAAAA Remaining program.
/*/A/ If there is any `*` remaining (if `n²` is odd), replace it with `A`.
/,// Remove the scanner `,`.
AAAAAAAA Output the result.