ローマ数字問題
「初めてのプログラミング」p.87 練習問題より
初期の頃のローマ数字には減算則はありませんでした。つまり「IX」で9を表したりせず素直に大きい数の次に小さい数を順に記述して「VIIII」というように書いていました。さて、1から3000の間の整数を入力してそれに相当する古いローマ数字の文字列を返すメソッドを書いてみましょ。
例えば、old_roman_numeral 4は'IIII'を返すようにします。できたメソッドをいろいろな整数でテストしてみること。
ex. I=1 V=5 X=10 L=50 C=100 D=500 M=1000
ヒント:整数の割り算と余り演算子(%)を使います
例えば2367円のお金を払うとき、以下のように様々な組み合わせ(分解)がありますよね。そういう考え方が参考になるよと先日ご助言もらいました。
- 1000円札×2枚, 100円玉を3枚, 50円玉を……
- 500円玉を4枚, 100円玉を……
ありがとうございます。難しそうだががんばるよ。
メモ
- roman_numeralを返すメソッドを作る
- 1-3000を入力したらローマ数字を返す
- ローマ数字中身を指示
- 超ぐむむ
- 1000の位(M), 100の位(C.D), 10の位(X, L), 1の位(V, I)をどう書けばよいのか
- 割り算と余り演算子を使うってうーん
- たとえば2367だとしたら…(1000円(M)×2+100(C)×3+50(L)×1+10(X)×1+5(V)×1+1(V)×2
- MMCCCLXVII となるだであってるのか?
- 式に書いたのはかけ算,しかし最初頭の中では割り算した
- -
どう書けばいいのかううーん
実行試し書き
def roman_num