FreeCodeCamp记录3

2017-07-29  本文已影响0人  Nicoyupei

289、将给定的数字转换成罗马数字。所有返回的罗马数字都应该是大写形式。


function convert(num) {

var nums = [1000,900,500,400,100,90,50,40,10,9,5,4,1];

var romans =["m","cm","d","cd","c","xc","l","xl","x","ix","v","iv","i"];

var str = '';

nums.forEach(function(item,index,array){

while(num >= item){

str += romans[index];

num -= item;

}

});

return str.toUpperCase();

}


function convert(num){

varalpha=['I','V','X','L','C','D','M'],roman="",bit=0;

while(num>0)

{

var tempnum = num%10;

switch(tempnum)

{

case3:{roman=alpha[bit]+roman;tempnum--;}

case2:{roman=alpha[bit]+roman;tempnum--;}

case1:{roman=alpha[bit]+roman;break;}

case4:{roman=alpha[bit+1]+roman;roman=alpha[bit]+roman;break;}

case8:{roman=alpha[bit]+roman;tempnum--;}

case7:{roman=alpha[bit]+roman;tempnum--;}

case6:{roman=alpha[bit]+roman;tempnum--;}

case5:{roman=alpha[bit+1]+roman;break;}

case9:{roman=alpha[bit+2]+roman;roman=alpha[bit]+roman;break;}

default:{break;}}

bit+=2;num=Math.floor(num /10);

return roman;

}

上一篇 下一篇

猜你喜欢

热点阅读