開発環境
- 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 コメント:
コメントを投稿