zoukankan      html  css  js  c++  java
  • 罗马数字

     

    今天再看罗马数字,才突然发现其完全是一种不同寻常的计数方法。我们平常用的是进制计数法(二进制、十进制等),而罗马数字完全不同。简单列几个罗马数字:

    • 1 => I
    • 2 => II
    • 5 => V
    • 6 => VI
    • 10 => X
    • 50 => L
    • 100 => C
    • 500 => D
    • 1000 => M

    有什么发现, 最直接的, 罗马数字的值就是将所有相加,完事. 

    罗马数字中没有0

    这是为啥呢?其实归功于罗马数字特有的计数方式,再进制计数法中0是做什么用的?占位。比如数字100中的0表示什么意思:1个100,0个10,0个1。0在其中仅仅表示此位空。而罗马数字因为其计数性质,数字表示累加的结果,明显不需要占位符。

    X、L这些数有什么用

    既然完全累加,又为什么5表示为V,10表示为X,全都用I表示不就好了么。

    举个例子,比较 IIIIII 和 IIIII 哪个较大?VI 和 V 哪个较大?嗯,明白了。而且数字也变短了。科学计数法:10^6 和10^7也是同样的道理。这就有点像我们写程序时的抽象

    罗马数字的运算

    罗马数字的运算也很简单,完全没有进位这些问题。

    加法就是将两个数字并排写就行,有点像取并集

    减法就是取出其中数字的部分,有点像取交集

    乘法和除法就是加减法,不说了


    之前一定是我的思想被禁锢了,没想到啊。既然除了进制计数,还存在其他计数方法,那一定除了罗马数字还有其他的计数方式,只是我没有发现或没有想到。厉害!!!

  • 相关阅读:
    宿主机无法访问CentOS7上Jenkins服务的解决办法
    415. Add Strings
    367. Valid Perfect Square
    326. Power of Three
    258. Add Digits
    231. Power of Two
    204. Count Primes
    202. Happy Number
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/hujingnb/p/12318643.html
Copyright © 2011-2022 走看看