ปัญหาการจัดการวันที่อื่น: P
งาน
เขียนโปรแกรมหรือฟังก์ชั่นที่คำนวณความแตกต่างระหว่างวันที่สองวันที่กำหนดโดยผู้ใช้
อินพุตและเอาต์พุต
คล้ายกับก่อนหน้านี้หนึ่งปัจจัยการผลิตเป็นสองYYYYMMDDs, คั่นด้วยช่องว่าง, เครื่องหมายจุลภาคหรือเครื่องหมายลบ,-
ตัวอย่างของค่าอินพุต:
20100101-20010911
20110620-20121223
19000101 20101010
33330101,19960229
00010101 99991231
เอาท์พุทเป็นจำนวนเต็มซึ่งเป็นความแตกต่างระหว่างวันที่สองวัน
ยกตัวอย่างเช่นการป้อนข้อมูล20110101-20100101อัตราผลตอบแทน365และอัตราผลตอบแทน33320229 17000101596124
คุณสามารถทดสอบผลลัพธ์ ที่นี่ ที่นี่ (ดูความคิดเห็นของ rintaun ด้านล่าง) หากสองวันเหมือนกันโปรแกรมควรกลับ0มาถ้าวันนั้นถูกต้อง (ดูคะแนน )
การ จำกัด
แน่นอนคุณจะต้องไม่ใช้ใด ๆชนิดของฟังก์ชั่น / ระดับ / ... ซึ่งจะเกี่ยวข้องกับการประทับเวลาหรือวันและคุณควรใช้ปฏิทินเกรกอเรียน
คะแนน
หากรหัสของคุณไม่ได้ จำกัดscore = -∞อยู่
ค่าเริ่มต้นbonusคือ 1
- หากรหัสของคุณทำงานโดยไม่คำนึงถึงคำสั่งของปัจจัยการผลิต (ตัวอย่างเช่น
20100101,20110101ผลตอบแทน365หรือ)-365bonus+=1 - หากรหัสของคุณสามารถจัดการกับปีที่ 0
bonus+=0.5, - หากรหัสของคุณตระหนักถึงเดือนไม่ถูกต้อง (ระหว่างวันที่ 1 ~ 12) / วัน (ระหว่างวันที่ 1 ~ 31) เช่น
20109901หรือ34720132และพิมพ์E(และยุติโปรแกรมหรือผลตอบแทนสิ่งที่ต้องการ)0bonus+=1 - โดยไม่คำนึงถึงกฎข้างต้นถ้ารหัสของคุณตระหนักถึงวันที่ไม่ถูกต้องเช่น
20100230,20100229หรือ20111131, และพิมพ์E(และยุติโปรแกรมหรือผลตอบแทนสิ่งที่ต้องการ)0bonus+=1 - โดยไม่คำนึงถึงข้างต้นทั้งสองกฎถ้ารหัสของคุณตระหนักถึงสายป้อนไม่ถูกต้องเช่น
20100101|20100202หรือ2010010120100202และพิมพ์E(และยุติโปรแกรมหรือผลตอบแทนสิ่งที่ต้องการ)0bonus+=1
score = floor(-4.2*code.length/bonus). รหัสที่มีคะแนนสูงสุดชนะ หากรหัสสองอันดับแรกมีคะแนนเท่ากันรหัสนั้นก็จะเป็นโบนัสที่มีรางวัลสูงสุด หากรหัสสองอันดับแรกมีทั้งคะแนนและโบนัสเท่ากันรหัสนั้นที่มีคะแนนโหวตสูงสุดจะเป็นฝ่ายชนะ
(ครบกำหนด: เมื่อมีมากกว่า 5 รหัสที่มีคะแนนมากกว่า (หรือเท่ากัน) +1)
20040229มันเป็นเรื่องที่ไม่ถูกต้องซึ่งแตกต่างจาก : P
365*4 + 2 + 2= 1464 ขอบคุณสำหรับข้อมูล!