14
牛乳は期限切れですか?
ああ、この有効期限は月を文字で書かない!私はそれが3月10か10月3日に期限が切れるなら...教えていない、気にしないで、待つことができない、今年は言う2012年(路地-おっとプロが好きなことができますゴミ箱にチーズのレンガを半使用) したがって、しばらくの間、このマリナラの瓶が期限切れになると推測するのに忙しすぎると仮定しましょう。クリフノーツバージョンが必要なだけです。期限が過ぎている可能性はどのくらいですか。いくつかのコードを書きましょう! 製造元は、次の3つの形式のいずれかで、順序付けされた整数のトリプルとして日付を印刷することを知っています。 YEAR MONTH DAY MONTH DAY YEAR DAY MONTH YEAR また、一部の日付は3つすべてではなく、1つまたは2つの方法でしか解釈できないことを知っています。55 55-11-5インチは1年である必要があります。 2つではなく、いくつかのオプションを除外できます。ただし、2桁の場合、50..99は1950..1999を意味し、0..49は2000..2049を意味します。 あなたの仕事は、上記の解釈の少なくとも1つで有効な日付である整数の配列を取り、それがまだ良い確率を出力するプログラムまたは関数を書くことです。可能性の割合は、単に今日の日付以降の日付の有効な解釈の割合です。 整数の配列は[Int]、関数への引数の場合、言語の長さ3 のタイプになり、STDINの入力として使用される場合、ダッシュ、スラッシュ、またはスペースで区切られた(選択する)整数として与えられます。完全なプログラム。* 「今日の日付」は、日付関数を介して取得した今日の実際の日付、または関数への追加の引数またはSTDINの追加のパラメーターで指定した日付にすることができます。Unixエポック秒、上記の3つの方法のいずれかで入力された別の年月日トリプル、または別のより便利な方法があります。 いくつか例を挙げましょう!有効期限の入力はダッシュで区切られたスタイルになり、以下の例では、今日の日付が2006年7月5日であると想定しています。 14-12-14-これに対する有効な解釈(DMYとYMD)はどちらも同等です(2014年12月14日)。この製品は間違いなく優れているため、出力は100です。 8-2-2006-最後の数字は4桁なので、確かに1年です。これは、2月8日(期限切れ)または8月2日(まだ良い)のいずれかです。出力は50です。 6-7-5-これは何でもいい!「2006年7月5日」の解釈は依然として良好です(1日のみ)が、残りの2つは両方とも2005年であり、できるだけ早く投げるべきです。出力は33です。 6-5-7-ここでは、3つの解釈のうち2つが安全です。小数を切り上げまたは切り捨てることができるため、66または67の両方で問題ありません。 12-31-99-さて、これは世紀の変わり目から明白です(50から99の年は19XXであり、31は月ではない可能性があります)。大きな脂肪0で、冷蔵庫をもっと頻繁に掃除する必要があります。 上記の基準を満たしていない入力は、上記の出力ルールに含まれていないとみなしても安全です。 Webリクエストや標準の抜け穴はありません。日付処理ライブラリが許可されています。これはコードゴルフです。最短のプログラムが勝つかもしれません。 * Brainfuckまたは同様のデータ型ハンディキャップ言語を使用している場合、入力の最初の3文字のASCII値が日付の整数であると想定できます。確かに、これは4桁の年のロジックを除外しますが、Brainfuckでこれに対する解決策を見れば、あなたを軽視するにはあまりにも驚かされると思います。