scala> val map = collection.mutable.Map[Int, String] ()
map: scala.collection.mutable.Map[Int,String] = Map()
scala>
scala> map += 1 -> "one"
res0: map.type = Map(1 -> one)
scala> map += 2 -> "two"
res1: map.type = Map(1 -> one, 2 -> two)
scala> map += 3 -> "three"
res2: map.type = Map(3 -> three, 1 -> one, 2 -> two)
scala> map += 4 -> "four"
res3: map.type = Map(3 -> three, 4 -> four, 1 -> one, 2 -> two)
scala> map += 5 -> "five"
res4: map.type = Map(5 -> five, 3 -> three, 4 -> four, 1 -> one, 2 -> two)
scala> map += 6 -> "six"
res5: map.type = Map(5 -> five, 3 -> three, 4 -> four, 1 -> one, 6 -> six, 2 -> two)
scala> map += 7 -> "seven"
res6: map.type = Map(5 -> five, 7 -> seven, 3 -> three, 4 -> four, 1 -> one, 6 -> six, 2 -> two)
scala> map += 8 -> "eight"
res7: map.type = Map(5 -> five, 8 -> eight, 7 -> seven, 3 -> three, 4 -> four, 1 -> one, 6 -> six, 2 -> two)
scala> map += 9 -> "nine"
res8: map.type = Map(5 -> five, 8 -> eight, 7 -> seven, 3 -> three, 4 -> four, 1 -> one, 6 -> six, 2 -> two, 9 -> nine)
scala> map += 10 -> "ten"
res9: map.type = Map(10 -> ten, 5 -> five, 8 -> eight, 7 -> seven, 3 -> three, 4 -> four, 1 -> one, 6 -> six, 2 -> two, 9 -> nine)
scala> map += 11 -> "eleven"
res10: map.type = Map(11 -> eleven, 10 -> ten, 5 -> five, 8 -> eight, 7 -> seven, 3 -> three, 4 -> four, 1 -> one, 6 -> six, 2 -> two, 9 -> nine)
scala> map += 12 -> "twelve"
res11: map.type = Map(11 -> eleven, 10 -> ten, 5 -> five, 12 -> twelve, 8 -> eight, 7 -> seven, 3 -> three, 4 -> four, 1 -> one, 6 -> six, 2 -> two, 9 -> nine)
scala> map += 13 -> "thirteen"
res12: map.type = Map(5 -> five, 10 -> ten, 11 -> eleven, 3 -> three, 7 -> seven, 8 -> eight, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 2 -> two, 9 -> nine)
scala> map += 14 -> "fourteen"
res13: map.type = Map(5 -> five, 10 -> ten, 11 -> eleven, 3 -> three, 7 -> seven, 8 -> eight, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 2 -> two, 14 -> fourteen, 9 -> nine)
scala> map += 15 -> "fifteen"
res14: map.type = Map(15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 3 -> three, 7 -> seven, 8 -> eight, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 2 -> two, 14 -> fourteen, 9 -> nine)
scala> map += 16 -> "sixteen"
res15: map.type = Map(16 -> sixteen, 15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 3 -> three, 7 -> seven, 8 -> eight, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 2 -> two, 14 -> fourteen, 9 -> nine)
scala> map += 17 -> "seventeen"
res16: map.type = Map(16 -> sixteen, 15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 3 -> three, 7 -> seven, 8 -> eight, 17 -> seventeen, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 2 -> two, 14 -> fourteen, 9 -> nine)
scala> map += 18 -> "eighteen"
res17: map.type = Map(16 -> sixteen, 15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 3 -> three, 7 -> seven, 8 -> eight, 17 -> seventeen, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 2 -> two, 14 -> fourteen, 18 -> eighteen, 9 -> nine)
scala> map += 19 -> "nineteen"
res18: map.type = Map(16 -> sixteen, 15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 3 -> three, 7 -> seven, 8 -> eight, 17 -> seventeen, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 2 -> two, 19 -> nineteen, 14 -> fourteen, 18 -> eighteen, 9 -> nine)
scala> map += 20 -> "twenty"
res19: map.type = Map(16 -> sixteen, 15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 3 -> three, 7 -> seven, 8 -> eight, 17 -> seventeen, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 20 -> twenty, 2 -> two, 19 -> nineteen, 14 -> fourteen, 18 -> eighteen, 9 -> nine)
scala> map += 30 -> "thirty"
res20: map.type = Map(16 -> sixteen, 15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 3 -> three, 7 -> seven, 8 -> eight, 17 -> seventeen, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 30 -> thirty, 20 -> twenty, 2 -> two, 19 -> nineteen, 14 -> fourteen, 18 -> eighteen, 9 -> nine)
scala> map += 40 -> "forty"
res21: map.type = Map(16 -> sixteen, 15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 40 -> forty, 3 -> three, 7 -> seven, 8 -> eight, 17 -> seventeen, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 30 -> thirty, 20 -> twenty, 2 -> two, 19 -> nineteen, 14 -> fourteen, 18 -> eighteen, 9 -> nine)
scala> map += 50 -> "fifty"
res22: map.type = Map(16 -> sixteen, 15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 40 -> forty, 3 -> three, 7 -> seven, 8 -> eight, 17 -> seventeen, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 30 -> thirty, 20 -> twenty, 2 -> two, 50 -> fifty, 19 -> nineteen, 14 -> fourteen, 18 -> eighteen, 9 -> nine)
scala> map += 60 -> "sixty"
res23: map.type = Map(60 -> sixty, 16 -> sixteen, 15 -> fifteen, 5 -> five, 10 -> ten, 11 -> eleven, 40 -> forty, 3 -> three, 7 -> seven, 8 -> eight, 17 -> seventeen, 12 -> twelve, 4 -> four, 1 -> one, 13 -> thirteen, 6 -> six, 30 -> thirty, 20 -> twenty, 2 -> two, 50 -> fifty, 19 -> nineteen, 14 -> fourteen, 18 -> eighteen, 9 -> nine)
scala> map += 70 -> "seventy"
res24: map.type = Map(10 -> ten, 5 -> five, 15 -> fifteen, 60 -> sixty, 11 -> eleven, 16 -> sixteen, 8 -> eight, 3 -> three, 40 -> forty, 7 -> seven, 12 -> twelve, 17 -> seventeen, 4 -> four, 13 -> thirteen, 1 -> one, 70 -> seventy, 6 -> six, 20 -> twenty, 30 -> thirty, 2 -> two, 50 -> fifty, 14 -> fourteen, 19 -> nineteen, 9 -> nine, 18 -> eighteen)
scala> map += 80 -> "eighty"
res25: map.type = Map(10 -> ten, 5 -> five, 15 -> fifteen, 60 -> sixty, 11 -> eleven, 16 -> sixteen, 8 -> eight, 3 -> three, 40 -> forty, 7 -> seven, 12 -> twelve, 17 -> seventeen, 4 -> four, 13 -> thirteen, 1 -> one, 70 -> seventy, 80 -> eighty, 6 -> six, 20 -> twenty, 30 -> thirty, 2 -> two, 50 -> fifty, 14 -> fourteen, 19 -> nineteen, 9 -> nine, 18 -> eighteen)
scala> map += 90 -> "ninety"
res26: map.type = Map(10 -> ten, 5 -> five, 15 -> fifteen, 60 -> sixty, 90 -> ninety, 11 -> eleven, 16 -> sixteen, 8 -> eight, 3 -> three, 40 -> forty, 7 -> seven, 12 -> twelve, 17 -> seventeen, 4 -> four, 13 -> thirteen, 1 -> one, 70 -> seventy, 80 -> eighty, 6 -> six, 20 -> twenty, 30 -> thirty, 2 -> two, 50 -> fifty, 14 -> fourteen, 19 -> nineteen, 9 -> nine, 18 -> eighteen)
scala> map += 1000 -> "one thousand"
res27: map.type = Map(10 -> ten, 5 -> five, 15 -> fifteen, 60 -> sixty, 90 -> ninety, 11 -> eleven, 16 -> sixteen, 8 -> eight, 3 -> three, 40 -> forty, 7 -> seven, 12 -> twelve, 17 -> seventeen, 4 -> four, 13 -> thirteen, 1 -> one, 70 -> seventy, 80 -> eighty, 6 -> six, 20 -> twenty, 30 -> thirty, 2 -> two, 50 -> fifty, 14 -> fourteen, 19 -> nineteen, 1000 -> one thousand, 9 -> nine, 18 -> eighteen)
scala> def numeral_string (n:Int):String = {
| if (map.contains(n)) {
| map(n)
| } else {
| var s = ""
|
| // 100の位
| val n1 = n / 100
| if (n1 != 0) s = map(n1) + " hundred"
|
| // 10の位 + 1の位
| val n2 = n % 100
| if ((n1 != 0 ) && (n2 != 0)) s += " and "
|
| if ((0 < n2) && (n2 <= 20)) {
| s += map(n2)
| } else {
| // 10の位
| val n3 = n2 / 10
| if (2 <= n3) s += map(n3 * 10)
|
| // 1の位
| val n4 = (n2 % 10)
| if (0 < n4) s += "-" + map(n4)
| }
| s
| }
| }
numeral_string: (n: Int)String
scala> (1 to 5).map(numeral_string)
res28: scala.collection.immutable.IndexedSeq[String] = Vector(one, two, three, four, five)
scala> (1 to 5).
| map(numeral_string)
res29: scala.collection.immutable.IndexedSeq[String] = Vector(one, two, three, four, five)
scala> .map(_.replace(" ",""))
res30: scala.collection.immutable.IndexedSeq[java.lang.String] = Vector(one, two, three, four, five)
scala> .map(_.replace("-",""))
res31: scala.collection.immutable.IndexedSeq[java.lang.String] = Vector(one, two, three, four, five)
scala> (1 to 5).
| map(numeral_string)
res32: scala.collection.immutable.IndexedSeq[String] = Vector(one, two, three, four, five)
scala> .map(_.replace(" ",""))
res33: scala.collection.immutable.IndexedSeq[java.lang.String] = Vector(one, two, three, four, five)
scala> .map(_.replace("-",""))
res34: scala.collection.immutable.IndexedSeq[java.lang.String] = Vector(one, two, three, four, five)
scala> .map(_.length)
res35: scala.collection.immutable.IndexedSeq[Int] = Vector(3, 3, 5, 4, 4)
scala> (1 to 5).
| map(numeral_string)
res36: scala.collection.immutable.IndexedSeq[String] = Vector(one, two, three, four, five)
scala> .map(_.replace(" ",""))
res37: scala.collection.immutable.IndexedSeq[java.lang.String] = Vector(one, two, three, four, five)
scala> .map(_.replace("-",""))
res38: scala.collection.immutable.IndexedSeq[java.lang.String] = Vector(one, two, three, four, five)
scala> .map(_.length)
res39: scala.collection.immutable.IndexedSeq[Int] = Vector(3, 3, 5, 4, 4)
scala> .sum
res40: Int = 19
scala> (1 to 1000).
| map(numeral_string)
res41: scala.collection.immutable.IndexedSeq[String] = Vector(one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, twenty-one, twenty-two, twenty-three, twenty-four, twenty-five, twenty-six, twenty-seven, twenty-eight, twenty-nine, thirty, thirty-one, thirty-two, thirty-three, thirty-four, thirty-five, thirty-six, thirty-seven, thirty-eight, thirty-nine, forty, forty-one, forty-two, forty-three, forty-four, forty-five, forty-six, forty-seven, forty-eight, forty-nine, fifty, fifty-one, fifty-two, fifty-three, fifty-four, fifty-five, fifty-six, fifty-seven, fifty-eight, fifty-nine, sixty, sixty-one, sixty-two, sixty-three, sixty-four, sixty-five, sixty-six, sixty-seven, sixty-eight, sixty-ni...
scala> .map(_.replace(" ",""))
res42: scala.collection.immutable.IndexedSeq[java.lang.String] = Vector(one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, twenty-one, twenty-two, twenty-three, twenty-four, twenty-five, twenty-six, twenty-seven, twenty-eight, twenty-nine, thirty, thirty-one, thirty-two, thirty-three, thirty-four, thirty-five, thirty-six, thirty-seven, thirty-eight, thirty-nine, forty, forty-one, forty-two, forty-three, forty-four, forty-five, forty-six, forty-seven, forty-eight, forty-nine, fifty, fifty-one, fifty-two, fifty-three, fifty-four, fifty-five, fifty-six, fifty-seven, fifty-eight, fifty-nine, sixty, sixty-one, sixty-two, sixty-three, sixty-four, sixty-five, sixty-six, sixty-seven, sixty-eight...
scala> .map(_.replace("-",""))
res43: scala.collection.immutable.IndexedSeq[java.lang.String] = Vector(one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, twentyone, twentytwo, twentythree, twentyfour, twentyfive, twentysix, twentyseven, twentyeight, twentynine, thirty, thirtyone, thirtytwo, thirtythree, thirtyfour, thirtyfive, thirtysix, thirtyseven, thirtyeight, thirtynine, forty, fortyone, fortytwo, fortythree, fortyfour, fortyfive, fortysix, fortyseven, fortyeight, fortynine, fifty, fiftyone, fiftytwo, fiftythree, fiftyfour, fiftyfive, fiftysix, fiftyseven, fiftyeight, fiftynine, sixty, sixtyone, sixtytwo, sixtythree, sixtyfour, sixtyfive, sixtysix, sixtyseven, sixtyeight, sixtynine, seventy, seventyone, seventytwo...
scala> .map(_.length)
res44: scala.collection.immutable.IndexedSeq[Int] = Vector(3, 3, 5, 4, 4, 3, 5, 5, 4, 3, 6, 6, 8, 8, 7, 7, 9, 8, 8, 6, 9, 9, 11, 10, 10, 9, 11, 11, 10, 6, 9, 9, 11, 10, 10, 9, 11, 11, 10, 5, 8, 8, 10, 9, 9, 8, 10, 10, 9, 5, 8, 8, 10, 9, 9, 8, 10, 10, 9, 5, 8, 8, 10, 9, 9, 8, 10, 10, 9, 7, 10, 10, 12, 11, 11, 10, 12, 12, 11, 6, 9, 9, 11, 10, 10, 9, 11, 11, 10, 6, 9, 9, 11, 10, 10, 9, 11, 11, 10, 10, 16, 16, 18, 17, 17, 16, 18, 18, 17, 16, 19, 19, 21, 21, 20, 20, 22, 21, 21, 19, 22, 22, 24, 23, 23, 22, 24, 24, 23, 19, 22, 22, 24, 23, 23, 22, 24, 24, 23, 18, 21, 21, 23, 22, 22, 21, 23, 23, 22, 18, 21, 21, 23, 22, 22, 21, 23, 23, 22, 18, 21, 21, 23, 22, 22, 21, 23, 23, 22, 20, 23, 23, 25, 24, 24, 23, 25, 25, 24, 19, 22, 22, 24, 23, 23, 22, 24, 24, 23, 19, 22, 22, 24, 23, 23, 22, 24, 24, 23,...
scala> .sum
res45: Int = 21124