2013年10月10日木曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の9章(自作メソッドの書き方), 9.5(練習問題)、古典的ローマ数字をDartで解いてみる。

その他参考書籍

古典的ローマ数字

コード

sample.dart

String oldRomanNumeral(int num){
  Map<int,String> num_roman = {1000:'M',
                               500:'D',
                               100:'C',
                               50:'L',
                               10:'X',
                               5:'V',
                               1:'I'};
  String result = "";
  for(var n in num_roman.keys.toList()){
    result += new List.filled(num ~/ n, num_roman[n]).join();
    num %= n;
  }
  return result;
}

void main() {
  var a = new Range()
  print(oldRomanNumeral(4));
  print(oldRomanNumeral(9));
  for(var i = 100; i < 121; i += 1){
    print('${i}: ${oldRomanNumeral(i)}');
  }
}

入出力結果

IIII
VIIII
100: C
101: CI
102: CII
103: CIII
104: CIIII
105: CV
106: CVI
107: CVII
108: CVIII
109: CVIIII
110: CX
111: CXI
112: CXII
113: CXIII
114: CXIIII
115: CXV
116: CXVI
117: CXVII
118: CXVIII
119: CXVIIII
120: CXX
$

0 コメント:

コメントを投稿