Masalah manipulasi tanggal lainnya: P
Tugas
Tulis program atau fungsi yang menghitung perbedaan antara dua tanggal yang diberikan oleh pengguna.
Input output
Mirip dengan yang sebelumnya , input adalah dua YYYYMMDD
s, dipisahkan oleh spasi , koma
,
, atau tanda minus -
.
Contoh nilai input:
20100101-20010911
20110620-20121223
19000101 20101010
33330101,19960229
00010101 99991231
Output adalah bilangan bulat, yang merupakan perbedaan antara dua tanggal, dalam hari.
Misalnya, input 20110101-20100101
hasil 365
, dan 33320229 17000101
hasil 596124
.
Anda dapat menguji hasilnya di sini di sini . (Lihat komentar rintaun di bawah ini.) Jika dua tanggal sama, program harus kembali 0
, jika tanggal tersebut valid (lihat Skor ).
Larangan
Tentu saja, Anda tidak boleh menggunakan segala jenis fungsi / kelas / ... yang terkait dengan cap waktu atau tanggal, dan Anda harus menggunakan kalender Gregorian .
Skor
Jika kode Anda tidak memenuhi batasan, maka score = -∞
.
Default bonus
adalah 1.
- Jika kode Anda berfungsi terlepas dari urutan input (misalnya,
20100101,20110101
pengembalian365
atau-365
)bonus+=1
,. - Jika kode Anda dapat menangani tahun 0 ,
bonus+=0.5
. - Jika kode Anda mengenali bulan yang tidak valid (antara 1 ~ 12) / tanggal (antara 1 ~ 31), sukai
20109901
atau34720132
, dan cetakE
(& akhiri program atau kembalikan sesuatu seperti0
)bonus+=1
,. - Terlepas dari aturan di atas, jika kode Anda mengenali tanggal tidak valid, seperti
20100230
,20100229
, atau20111131
, dan cetakanE
(& mengakhiri program atau pengembalian sesuatu seperti0
),bonus+=1
. - Terlepas dari dua aturan di atas, jika kode Anda mengenali string input yang tidak valid, seperti
20100101|20100202
atau2010010120100202
, dan dicetakE
(& mengakhiri program atau mengembalikan sesuatu seperti0
)bonus+=1
,.
score = floor(-4.2*code.length/bonus)
. Kode dengan kemenangan skor tertinggi. Jika dua kode teratas memiliki skor yang sama, maka kode dengan bonus tertinggi akan menang. Jika dua kode teratas memiliki skor dan bonus yang sama, maka kode dengan suara terbanyak akan menang.
(Jatuh tempo: Ketika ada lebih dari 5 kode yang memiliki lebih dari (atau setara) +1
suara.)
20040229
. : P
365*4 + 2 + 2
= 1464. Terima kasih atas informasinya!