게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바스크립트 로마숫자 변환 로직, 더 줄여주세요!
게시물ID : programmer_16629짧은주소 복사하기
작성자 : sharing
추천 : 0
조회수 : 1544회
댓글수 : 3개
등록시간 : 2016/04/10 03:54:55
옵션
  • 창작글
  • 본인삭제금지
5000미만의 아라비아숫자 -> 로마자 변환 로직입니다.
 
분명 코드를 더 줄일수도 있을거 같은데 잘 떠오르지 않네요..
 
더 줄이는게 가능하신 분 도움! 주세요!
 
이미지 3.png
 
 
        var roman = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];
        var rs = '';
        var parseRoman = function (arabic) {
            var firstNum = parseInt(arabic.toString().substr(0, 1));
            var rIdx = (firstNum >= 5 ? arabic.toString().length * 2 - 1 : arabic.toString().length * 2 - 2);
            var rCnt = arabic.toString().substr(0, 1);
            if ((firstNum + 1) % 5 == 0 && arabic < 4000) {
                rs += roman[rIdx - ((firstNum + 1) / 5 - 1)] + roman[rIdx + 1];
            } else {
                if (firstNum >= 5) {
                    rs += roman[rIdx];
                    rCnt -= 5;
                }
                for (var i = 0; i < rCnt; i++) {
                    rs += roman[rIdx];
                }
            }
            if (rIdx > 0) {
                parseRoman(arabic.toString().substr(1, arabic.toString().length - 1));
            }
            return rs;
        }
        console.log(parseRoman(4999));


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호