美文网首页
FreeCodeCamp记录3

FreeCodeCamp记录3

作者: Nicoyupei | 来源:发表于2017-07-29 13:17 被阅读0次

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;

}

相关文章

  • FreeCodeCamp记录3

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

  • FreeCodeCamp记录1

    287、我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。最小的数字并非总在最前面。 f...

  • FreeCodeCamp记录10

    写一个 function,传入两个或两个以上的数组,返回一个以给定的原始数组排序的不包含重复值的新数组。 题目思路...

  • FreeCodeCamp记录8

    从传递进来的字母序列中找到缺失的字母并返回它。 如果所有字母都在序列中,返回 undefined。 实现思路,对字...

  • FreeCodeCamp记录9

    检查一个值是否是基本布尔类型,并返回 true 或 false。 基本布尔类型即 true 和 false。 主要...

  • FreeCodeCamp记录6

    把指定的字符串翻译成 pig latin。 Pig Latin把一个英文单词的第一个辅音或辅音丛(consonan...

  • FreeCodeCamp记录7

    DNA 链缺少配对的碱基。依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回。 Base pairs...

  • FreeCodeCamp记录2

    288、比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差...

  • FreeCodeCamp记录12

    给一个正整数num,返回小于或等于num的斐波纳契奇数之和。 斐波纳契数列中的前几个数字是 1、1、2、3、5 和...

  • 2016github最受欢迎十个项目

    FreeCodeCamp/FreeCodeCamphttps://github.com/FreeCodeCamp/...

网友评论

      本文标题:FreeCodeCamp记录3

      本文链接:https://www.haomeiwen.com/subject/vjzqlxtx.html