私のジムのバーベルは次のように見えます。
=========[]-----------------------[]=========
5種類のサイズ、2.5ポンド、5ポンド、10ポンド、25ポンド、45ポンドのプレートを保持できます。
.
. ! |
. ! | | |
| | | | |
' ! | | |
' ! |
'
安全のために、クリップがある]場合[はすべてのプレートの外側にもクリップを追加します。バー自体の重さは45ポンドです。常に、最も重いプレートを中央に最も近く、プレート間に隙間がないように配置し、両側に同じプレートを配置します。また、可能な限り最小数のプレートを常に使用します。たとえば、1つの10ポンドのプレートではなく、片側に2つの5ポンドのプレートを使用することはありません。したがって、215ポンドを持ち上げたい場合、私のバーは次のようになります。
. .
.!| |!.
!||| |||!
====]||||[]-----------------------[]||||[====
!||| |||!
'!| |!'
' '
コード、関数、または完全なプログラムは、45〜575の整数(常に5の倍数)を取り、その重みを合計するバーを出力する必要があります。例えば:
入力: 45
出力(空のバーにクリップがないことに注意してください):
=========[]-----------------------[]=========
入力: 100
出力:
! !
.| |.
======]||[]-----------------------[]||[======
'| |'
! !
入力: 575
出力:
..... .....
.!||||| |||||!.
!||||||| |||||||!
]||||||||[]-----------------------[]||||||||[
!||||||| |||||||!
'!||||| |||||!'
''''' '''''
各行に末尾のスペースを含めることも、含めないこともできますが、出力の先頭または末尾に空の行を含めることはできません(45の出力は1行、50の場合は3行、65の場合は5行など)。
これはコードゴルフで、最短のコードが勝ちます!
printますか?