別の日付操作の問題:P
仕事
ユーザーが指定した2つの日付の差を計算するプログラムまたは関数を作成します。
入出力
前のものと同様に、入力はYYYYMMDD
スペース、コンマ
,
、またはマイナス記号で区切られた2つ-
です。
入力値の例:
20100101-20010911
20110620-20121223
19000101 20101010
33330101,19960229
00010101 99991231
出力は整数であり、2つの日付の日数の差です。
たとえば、入力20110101-20100101
yields 365
および33320229 17000101
yields 596124
。
結果をテストできます ここで ここで。(以下のrintaunのコメントを参照してください。)2つの日付が同じ0
場合、日付が有効であればプログラムはを返します(スコアを参照)。
制限
もちろん、あなたがしなければならない使用しない任意の関数/クラスの種類/ ...タイムスタンプまたは日付に関連している、とあなたが使用する必要がありますグレゴリオ暦を。
スコア
あなたのコードは、制限を守らない場合score = -∞
。
デフォルトbonus
は1です。
- 入力の順序(たとえば、
20100101,20110101
return365
または-365
)に関係なくコードが機能する場合bonus+=1
。 - あなたのコードが処理できる場合は年0、
bonus+=0.5
。 - あなたのコードが/日付(1〜12の間)のように、(1〜31の間)、無効な月を認識した場合
20109901
や34720132
、および印刷物E
(&などのプログラムや戻り何かを終了0
)、bonus+=1
。 - かかわらず、上記のルールの、あなたのコードは無効な日付を認識した場合、のような
20100230
、20100229
あるいは20111131
、および印刷物E
(&プログラムまたは返すようなものを終了0
)、bonus+=1
。 - 上記の2つのルールに関係なく、コードが
20100101|20100202
orなどの無効な入力文字列を認識し2010010120100202
、印刷E
(&がプログラムを終了する、またはのようなものを返す0
)する場合bonus+=1
。
score = floor(-4.2*code.length/bonus)
。最高スコアのコードが勝ちます。2つの上位コードのスコアが同じ場合、ボーナスが最も高いコードが勝ちます。2つの上位コードが同じスコアとボーナスの両方を持っている場合、最高得票のコードが勝ちます。
(期限:+1
投票数が多い(または等しい)コードが5つ以上ある場合。)
20040229
です。:P
365*4 + 2 + 2
=1464。情報をありがとう!