>웹 프론트엔드 >JS 튜토리얼 >세계의 완벽한 대칭일을 계산하는 JS 코드, 대략적인 버전_javascript 기술

세계의 완벽한 대칭일을 계산하는 JS 코드, 대략적인 버전_javascript 기술

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-05-16 17:59:381098검색

예를 들어 20111102
오후에 심심해서 하나 썼습니다.
그냥 심심해서 썼습니다.
코드 최적화에 관심이 있으신 분 계시다면 정말 감사합니다

계산해 보면 서기 2000년부터 3000년까지 전 세계에서 완벽한 대칭이 가능한 날은 총 36일입니다.
정원에서 어떤 블로그를 보면 아래에 "실행"을 추가하여 HTML 코드를 직접 실행할 수 있습니다. 고치는 방법을 모르겠는데 알려주실 수 있나요

코드 복사 코드는 다음과 같습니다.


;

서기 1000년 이후의 회문<br> <br>/**<br>* 날짜를 20111102와 같은 표준 8비트 형식으로 변경합니다. <br>* 이를 4개의 세그먼트로 나눕니다: 세기, 연도, 월, 일을 나타내는 20 11 11 02 <br>* 시간 복잡도 연도별 알고리즘은 O(n3)이고 마지막 4자리인 월, 일에서 최종 결과를 얻을 수 있어 더 효율적입니다 <br>* 윤년의 2월 가수는 9이므로 인류의 오랜 역사를 뛰어넘기 때문에 고려할 필요가 없습니다 <br>*/ <br>;;(function(){ <br>var theDateList=[]; <br>//회문일의 최대 세기 값<br>var maxForCentury=30; <br>//회문일이 발생할 수 있는 세기의 최소값<br>var minForCentury=20; <br>//회문일이 발생할 수 있는 연도의 최대값, 대략적인 값 처리는 여기에서 수행됩니다<br>var maxForYear=21; <br>var maxForDay=31;//윤년은 제외되지 않습니다<br>for(var i=1;ivar stdYear ,stdDay; <br>var stdMonth=getStandardDate(i); <br>/* <br>if(getReverseDate(stdMonth)>maxForDay){ <br>계속; maxForDay=getDate(i); <br>for(var k=1 ;k<maxforday>stdDay =getStandardDate(k) <br>stdYear=getReverseDate(stdMonth stdDay) <br> parseInt(getReverseDate(stdDay),10)>=minForCentury <br> &&parseInt(getReverseDate(stdDay),10)<maxforcentury>theDateList.push(stdYear stdMonth stdDay) <br>} <br>} <br>theDateList.sort(); //정렬<br>for( var i=0;i<thedatelist.length>console.log(theDateList[i]) <br>} <br> console.log('총 %d개 레코드',theDateList.length) <br>/**<br>* 월을 기준으로 이번 달의 일수 계산 <br>* @param {int} val Month <br>* @return {int} <br>*/ <br>function getDate(val){ <br>return val%2==0?30:31; <br>} <br>/**<br>* 10 미만의 날짜 값을 표준 8자리 날짜 값으로 변환 ​​<br>* @param {int} val 월 또는 일 <br>* @return {string} 표준 형식 <br>*/ <br>function getStandardDate(val){ <br>if(valreturn '0' val; return val.toString(); <br>} <br>/ **<br>* 날짜 반전 <br>* @param {string} date 월 또는 날짜의 표준 형식 <br>* @return {string} 반전 표준 형식 <br>*/ <br>function getReverseDate(date){ <br>return date.split("").reverse().join(" "); <br>} <br>})(); <br> <br> <br> <br> <br>< ;/html> <br><br></thedatelist.length></maxforcentury></maxforday>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.