• freecodecamp数字转化成罗马数字


    做数字转罗马数字时,用到了贪心算法,很好用,记录一下,有时间系统的学一下

    罗马数字的规则:

    罗马数字网址

    1 5 10 50 100 500 1000
    I V X L C D M1

    1当一个符号在一个 比它大的符号后面(右边),就要 上这符号的值

    • 例子: VI = V + I = 5 + 1 = 6

    2当一个符号在一个 比它大的符号前面(左边),就要 去这符号的值

    • 例子: IX = X - I = 10 - 1 = 9

    3不要连续使用同一符号超过三次 (但 IIII 有时是用来代表 4,尤其在时钟上)

    我刚开始考虑用switch 然后再对加减情况单独处理,发现太多了,根本考虑不全;

    后来参考了罗马数字和整数相互转换这篇文章,发现反过来想,这个问题就很简单

        1000 900 500 400 100 90 50 40 10 9 5 4 1
    M CM D CD C XC L XL X IX V IV I

    然后将数字与这个数组对应,选最近的值加上他的罗马数字,简单粗暴的就过了,

    function convert(num) {
     
      var str="";
      var bignum=[1000,900,500,400,100,90,50,40,10,9,5,4,1];
      var roman=["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"];
      var i=0;
    while(num>0){
      if(num>=bignum[i]){
        num-=bignum[i];
        str+=roman[i];
      }else {
        i++;
      }
    }
     return str;
    }
    
    convert(97);
    
  • 相关阅读:
    第2课:关闭被黑客扫描的端口
    CentOS安装zip及用法
    网络安全目录
    第1课:电脑基础命令讲解
    SQL注入目录
    windows下安装redis
    CentOS安装rar及用法
    CentOS安装OpenOffice
    hadoop异常
    删除CentOS系统自带的jdk
  • 原文地址:https://www.cnblogs.com/dadaochangcun/p/9806577.html
Copyright © 2020-2023  润新知