開発環境
- OS X Lion - Apple(OS)
- Dart SDK (開発環境)
- Dart (プログラミング言語)
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の12章(新しいクラスのオブジェクト), 12.6(練習問題の続き)、roman_to_integer 'mcmxcix'!をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
romanToInteger
コード
sample.dart
int romanToInteger(String roman){ var num = 0, pre = 0, i; Map<String, int> r_n = {'m': 1000, 'd': 500, 'c': 100, 'l': 50, 'x': 10, 'v': 5, 'i': 1}; for(i = roman.length - 1; i >= 0; i -= 1){ var c = roman[i], d = c.toLowerCase(), n; if(!r_n.containsKey(d)){ throw '有効なローマ数字になっていない!'; } n = r_n[d]; if (n >= pre){ num += n; pre = n; } else { num -= n; } } return num; } void main(){ for(var roman in ['abcde', 'mcmxcix']){ try{ print('${roman}: ${romanToInteger(roman)}'); }catch(e){ print('$e'); } } }
入出力結果
有効なローマ数字になっていない! mcmxcix: 1999
0 コメント:
コメントを投稿