<div style="text-align:left;">5000미만의 아라비아숫자 -> 로마자 변환 로직입니다.</div> <div style="text-align:left;"> </div> <div style="text-align:left;">분명 코드를 더 줄일수도 있을거 같은데 잘 떠오르지 않네요..</div> <div style="text-align:left;"> </div> <div style="text-align:left;">더 줄이는게 가능하신 분 도움! 주세요!</div> <div style="text-align:left;"> </div> <div style="text-align:left;"> <div style="text-align:left;"><img width="800" height="335" class="chimg_photo" style="border:;" alt="이미지 3.png" src="http://thimg.todayhumor.co.kr/upfile/201604/14602280184c341d3df503458583cd27aca92de25c__mn272939__w832__h348__f52291__Ym201604.png" filesize="52291"></div></div> <div> </div> <div> </div> <div> var roman = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];<br> var rs = '';<br> var parseRoman = function (arabic) {<br> var firstNum = parseInt(arabic.toString().substr(0, 1));<br> var rIdx = (firstNum >= 5 ? arabic.toString().length * 2 - 1 : arabic.toString().length * 2 - 2);<br> var rCnt = arabic.toString().substr(0, 1);<br> if ((firstNum + 1) % 5 == 0 && arabic < 4000) {<br> rs += roman[rIdx - ((firstNum + 1) / 5 - 1)] + roman[rIdx + 1];<br> } else {<br> if (firstNum >= 5) {<br> rs += roman[rIdx];<br> rCnt -= 5;<br> }<br> for (var i = 0; i < rCnt; i++) {<br> rs += roman[rIdx];<br> }<br> }<br> if (rIdx > 0) {<br> parseRoman(arabic.toString().substr(1, arabic.toString().length - 1));<br> }<br> return rs;<br> }<br> console.log(parseRoman(4999));</div><br><br>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.