kotlin實現羅馬數字和阿拉伯數字轉換

2021-07-03 16:55:07 字數 1035 閱讀 2146

1.羅馬數字轉阿拉伯數字

遍歷羅馬數字的每一位,若當前位比前一位小,則在結果中加上當前位

否則在結果中減去前一位的兩倍再加上當前位

2.阿拉伯數字轉羅馬數字

先構造map

mapof(1000 to "m"

,900 to "cm"

,500 to "d"

,400 to "cd"

,100 to "c"

,90 to "xc"

,50 to "l"

,40 to "xl"

,10 to "x"

,9 to "ix"

,5 to "v"

,4 to "iv"

,1 to "i")

遍歷map

若當前數字大於第i個數字

將第i個數字對應的字母加入結果中,當前數字-=第i個數字

val romechar=mapof(

'i' to 1,

'v' to 5,

'x' to 10,

'l' to 50,

'c' to 100,

'd' to 500,

'm' to 1000

)class romenumber private constructor()

var number:string=""

set(value)) throw object :exception("it is not a legal rome number") else $number=value.touppercase()

}public fun toarabicnumber():intelse sum+=value

lastnumber=value

}return sum

}override fun tostring(): string

}fun int.toromenumber():romenumber}}

return romenumber(sb.tostring())

}

羅馬數字 古羅馬數字轉換為阿拉伯數字

題目 古羅馬帝國開創了輝煌的人類文明,但他們的數字表示法的確有些繁瑣,尤其在表示大數的時候,現在看起來簡直不能忍受,所以在現代很少使用了。之所以這樣,不是因為發明表示法的人的智力的問題,而是因為乙個宗教的原因,當時的宗教禁止在數字中出現0的概念!羅馬數字的表示主要依賴以下幾個基本符號 i 1 v 5...

阿拉伯數字轉羅馬數字

最開始想的是當成進製轉,比如說 1 i,2 ii,5 v,6 vi public static string inttoroman1 int num int radix stringbuffer sb new stringbuffer for int i radix.length 1 i 0 i r...

阿拉伯數字轉羅馬數字

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 張老師需要用數字來統計學生們的得分情況,但阿拉伯數字已經不能滿足他的要求了,所以想請你幫忙將學生的成績轉換成羅馬數字。羅馬數字是由七個不同的符號來表示 i...