月曜日のミニゴルフ:毎週月曜日に(願わくば!)投稿された一連の短いコードゴルフチャレンジ。
遅れてすみません。私は、それが複製であるという別のアイデアを書き出す過程の90%を実現しました。
私の家族はかなり大きいので、たくさんの食べ物を食べます。十分な食料を作るには、通常、2倍、3倍、または4倍のレシピが必要です。しかし、測定値を乗算することは苦痛になる可能性があるため、これを行うプログラムを用意しておくと便利です。
チャレンジ
あなたの挑戦は、数値Nと文字Lとして測定値を取り込んで、できるだけ単純化された同じ測定値を返すプログラムまたは関数を作成することです。必要な測定単位(すべて私の家族と同じようにアメリカ人)とそれに対応する文字は次のとおりです。
1 cup (c) = 16 tablespoons (T) = 48 teaspoons (t)
1 pound (l) = 16 ounces (o)
1 gallon (g) = 4 quarts (q) = 8 pints (p) = 128 fluid ounces (f)
「可能な限り簡素化」とは、次のことを意味します。
- 可能な限り最大の測定単位を使用します。各ユニットには、1 / 4、1 / 3、1 / 2、2 / 3、または3/4の残りがあります。
- 必要に応じて、結果を混合数値に変換します。
たとえば、4 o
4オンスであり、これ1/4 l
は1/4ポンドになります。8 t
、小さじ8杯になり2 2/3 T
ます。
詳細
- 入力は、合理的な形式で取得できます。出力と同じ。(
1 t
、1,"t"
、1\nt
、等) - 小数部分が適切に処理されていることを確認してください。(の
11/4
代わりに1 1/4
はできません。) - 番号は常に混合数になり、常にの分母を有するであろう
2
、3
または4
(又はなし)。(いいえ1 1/8 T
、いいえ1.5 T
など) - 上記の結果、下方への変換(カップから大さじなど)は必要ありません。
- 文字は常に上記の文字(
Tcfglopqt
)のいずれかになります。
テストケース
すべてのタイプのケースを網羅した大きなリストを以下に示します。
Input | Output
--------+--------
1/2 t | 1/2 t
3/4 t | 1/4 T
1 t | 1/3 T
1 1/2 t | 1/2 T
2 t | 2/3 T
2 1/4 t | 3/4 T
2 1/2 t | 2 1/2 t
3 t | 1 T
10 t | 3 1/3 T
16 t | 1/3 c
5 1/3 T | 1/3 c
8 T | 1/2 c
16 T | 1 c
36 T | 2 1/4 c
1/4 c | 1/4 c
1024 c | 1024 c
1 o | 1 o
4 o | 1/4 l
5 1/3 o | 1/3 l
5 2/3 o | 5 2/3 o
8 o | 1/2 l
28 o | 1 3/4 l
28 l | 28 l
2 f | 2 f
4 f | 1/4 p
8 f | 1/4 q
16 f | 1/2 q
32 f | 1/4 g
64 f | 1/2 g
128 f | 1 g
2/3 p | 1/3 q
1 1/3 p | 2/3 q
2 p | 1/4 g
1 q | 1/4 g
得点
キッチンは非常に小さいため、キッチンをthe屈にしないために、コードはできるだけ短くする必要があります。バイト単位の最短有効コードが優先されます。タイブレーカーは、最初に最終バイトカウントに達した送信に進みます。勝者は、11月9日の次の月曜日に選ばれます。
この課題は、World Big Dosaに似ていますが、その複製ではないことに注意してください。