다른 날짜 조작 문제 : P
직무
사용자가 제공 한 두 날짜의 차이를 계산하는 프로그램이나 함수를 작성하십시오.
입출력
이전 입력과 유사하게 입력은 YYYYMMDD
공백 , 쉼표
,
또는 빼기 부호 로 구분 된 두 개의 입력 -
입니다.
입력 값의 예 :
20100101-20010911
20110620-20121223
19000101 20101010
33330101,19960229
00010101 99991231
출력은 정수이며, 두 날짜 사이의 차이 (일)입니다.
예를 들어, input 20110101-20100101
yields 365
및 33320229 17000101
yields 596124
입니다.
결과를 테스트 할 수 있습니다 여기에 여기에 . (아래의 rintaun의 의견을 참조하십시오.) 두 날짜가 동일 0
하면 날짜가 유효하면 프로그램에서을 반환해야합니다 ( 점수 참조 ).
제한
물론, 당신은 해야한다 사용하지 어떤 / ... 타임 스탬프 또는 날짜에 관련된 기능 / 클래스의 종류, 당신은 사용해야 그레고리력을 .
점수
코드가 제한을 유지하지 않으면 score = -∞
.
기본값 bonus
은 1입니다.
- 코드 (예, 대한 입력 순서에 관계없이 작동하는 경우
20100101,20110101
반환365
또는-365
)bonus+=1
. - 코드가 처리 할 수있는 경우 0 년 ,
bonus+=0.5
. - 코드가 / 날짜 (1 ~ 12 사이)와 같은, (1 ~ 31 일 사이에) 유효하지 않은 달을 인식하는 경우
20109901
나34720132
, 및 인쇄E
(같은 프로그램이나 반환 뭔가를 종료0
)bonus+=1
. - 에 관계없이 위의 규칙, 코드가 유효하지 않은 날짜, 같은 인식하는지
20100230
,20100229
또는20111131
, 및 인쇄E
(같은 프로그램이나 반환 뭔가를 종료를0
)bonus+=1
. - 에 관계없이 두 가지 규칙 위의 코드가 같은 잘못된 입력 문자열을 인식하는 경우
20100101|20100202
나2010010120100202
, 및 인쇄E
(같은 프로그램이나 반환 뭔가를 종료0
)bonus+=1
.
score = floor(-4.2*code.length/bonus)
. 가장 높은 점수를 얻은 코드가 승리합니다. 두 개의 최상위 코드의 점수가 같으면 보너스가 가장 높은 코드가 승리합니다. 두 개의 최상위 코드가 동일한 점수와 보너스를 모두 가진 경우, 가장 높은 표를 얻은 코드가 승리합니다.
(사유 : +1
투표 수가 5 이상인 코드가있는 경우 )
20040229
. : P
365*4 + 2 + 2
= 1464. 정보 주셔서 감사합니다!