[前][次][番号順一覧][スレッド一覧]

learn-ruby-in-kansai:2280

From: ふるかわだいすけ <mogya@m...>
Date: Wed, 28 Apr 2010 11:42:50 +0900
Subject: [learn-ruby-in-kansai:2280] Re: ローマ数字の999

> Excel にも Roman 関数があって、オプションで 999 = CMXCIX にしたり
> 999 = IM にしたり出来るようです。

 あー。なるほど。1-4までレベルを指定できて、Iで引き算したりVで引き算したりできるのですね。
これなら実装できないこともないかな。ありがとうございます。

/Furukawa

2010年4月27日23:07 HIGAKI Masaru <higaki@h...>:
> ひがきです。
> こんばんは。
>
>>>>>> On Mon, 26 Apr 2010 15:28:27 +0900
>>>>>> mogya@m...(ふるかわだいすけ)  said:
>
>> Ruby関西#42の初級者レッスンにあった演習課題、解答ってどこかに上がっていたりするのでしょうか?
>> 実際解いてみたら、part2の例にある999がどうしてもあわなくて、なんか変な気がしてきました。
>>
>> ~~~~~~~~~~
>> ローマ数字Part2
>> 新しいタイプのローマ数字の文字列を返すメソッドを作りましょう。
>> # 出力例
>> 4.to_roman #=> IV
>> 999.to_roman #=> IM
>>   メソッド名はto roman
>>   考え方はPart1 と同じで大丈夫です。
>> ~~~~~~~~~~
>>
>> 999のローマ字表記って、IM(1000-1)じゃなくてCMXCIX(1000-100 + 100-10 + 10-1)じゃないですか?
>>
>> Wikipedia見ると
>> >4や9は当初IIII、VIIIIと書いたが、のちに減算則が作られ、IVやIXと書くようになった。このように、小さい数を大きい数の左側に置いた場合は、右の数から左の数を減じたものが示している数字である。
>> >ただし、小さい数は大きい数の左側に1つしか置くことができない。また、この減算則は右の数が左の数のちょうど5倍または10倍であり、かつ左の数がI,
>> X, Cのときに限り使用することができる。
>> :
>> >XCIX=99(ICと書くのは許されない)
>> ということになっています。
>
> このルールに従った方が簡単に実装できますね。
> 私は 999 = CMXCIX で実装しました。
>
> Wikipedia にも書いてある通り、ローマ数字っていい加減みたいですね。
> Excel にも Roman 関数があって、オプションで 999 = CMXCIX にしたり
> 999 = IM にしたり出来るようです。
>
> --ひがき
>
> --
> ML: learn-ruby-in-kansai@r...
> 使い方: http://QuickML.com/
>

--
ML: learn-ruby-in-kansai@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      2268 2010-04-26 08:28 [mogya@m...          ] ローマ数字の999                      
      2274 2010-04-27 16:07 ┗[higaki@h...         ]                                       
->    2280 2010-04-28 04:42  ┗[mogya@m...          ]