(@ChasBrownのおかげでタイトル)
背景
この挑戦は、私が最近Puzzling Stack Exchangeに投稿した質問に触発されました。元の質問に興味がある場合は、リンクをたどってください。そうでない場合は、ここで詳細を説明しません。
事実
印刷可能な標準ASCII文字はすべて、32〜126の10進数値を持ちます。これらは、100000から1111110までの範囲の対応する2進数に変換できます。これらの2進数のビットを合計すると、常に1〜6の整数になります。
チャレンジ
入力として1〜6の整数を指定し、バイナリ値のビットの合計が入力整数に等しい印刷可能な標準ASCII文字をすべて受け入れ可能な形式で出力するプログラムまたは関数を作成します。
例/テストケース
1 -> ' @'
2 -> '!"$(0ABDHP`'
3 -> '#%&)*,1248CEFIJLQRTXabdhp'
4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx'
5 -> '/7;=>OW[]^gkmnsuvyz|'
6 -> '?_ow{}~'
未使用のPythonリファレンス実装は、こちら(TIO)から入手できます。
ルール
- 入力は常に1〜6の整数(または整数の文字列表現)であると仮定します。
- 結果を表示するプログラム、または結果を返す関数を作成できます。
- 出力は合理的な形式であるかもしれませんが、すべての入力に対して一貫していなければなりません。引用符付き文字列を出力することを選択した場合、すべての入力に同じタイプの引用符を使用する必要があります。
- 通常の禁止されている標準的な抜け穴。
- これはコードゴルフなので、各言語の最短コードが勝ちます。
'
デフォルトで文字列の文字列表現に単一引用符()を使用しますが"
、文字列に単一引用符が含まれ、二重引用符がない場合は二重引用符()を使用します。表現の代わりに実際の文字列を返す方がおそらく良いので、この特定のケースは重要ではありません、とにかく入力のためにそのような文字列で一重引用符を使用することができますが、ここで言及する価値があると感じています。
« »
)?:D
63
vs?
)にする必要がありますか?