def int2str
(value
: Int
) = { require(value >= 0 && value <= 1000)
1 -> "одна тысяча"
)
1 -> "сто",
2 -> "двести",
3 -> "триста",
4 -> "четыреста",
5 -> "пятьсот",
6 -> "шестьсот",
7 -> "семьсот",
8 -> "восемьсот",
9 -> "девятьсот"
)
2 -> "двадцать",
3 -> "тридцать",
4 -> "сорок",
5 -> "пятьдесят",
6 -> "шестьдесят",
7 -> "семьдесят",
8 -> "восемьдесят",
9 -> "девяносто"
)
1 -> "один",
2 -> "два",
3 -> "три",
4 -> "четыре",
10 -> "десять",
11 -> "одинадцать",
12 -> "двенадцать",
13 -> "тринадцать",
14 -> "четырнадцать",
15 -> "пятнадцать",
19 -> "девятнадцать"
)
List(
thousands.get(value / 1000),
hundreds.get(value % 1000 / 100),
tens.
get(if (rem100
>= 20) rem100 /
10 else 0),
ones.
get(if (rem100
>= 20) rem100
% 10 else rem100
) ).flatten mkString " "
}
List(1,3,11,10,13,15,121,819,973) foreach (v=>println(int2str(v)))
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHB7CiAgZGVmIGludDJzdHIodmFsdWU6IEludCkgPSB7CiAgICByZXF1aXJlKHZhbHVlID49IDAgJiYgdmFsdWUgPD0gMTAwMCkKCiAgICB2YWwgdGhvdXNhbmRzID0gTWFwKAogICAgICAxIC0+ICLQvtC00L3QsCDRgtGL0YHRj9GH0LAiCiAgICApCiAgICB2YWwgaHVuZHJlZHMgPSBNYXAoCiAgICAgIDEgLT4gItGB0YLQviIsCiAgICAgIDIgLT4gItC00LLQtdGB0YLQuCIsCiAgICAgIDMgLT4gItGC0YDQuNGB0YLQsCIsCiAgICAgIDQgLT4gItGH0LXRgtGL0YDQtdGB0YLQsCIsCiAgICAgIDUgLT4gItC/0Y/RgtGM0YHQvtGCIiwKICAgICAgNiAtPiAi0YjQtdGB0YLRjNGB0L7RgiIsCiAgICAgIDcgLT4gItGB0LXQvNGM0YHQvtGCIiwKICAgICAgOCAtPiAi0LLQvtGB0LXQvNGM0YHQvtGCIiwKICAgICAgOSAtPiAi0LTQtdCy0Y/RgtGM0YHQvtGCIgogICAgKQogICAgdmFsIHRlbnMgPSBNYXAoCiAgICAgIDIgLT4gItC00LLQsNC00YbQsNGC0YwiLAogICAgICAzIC0+ICLRgtGA0LjQtNGG0LDRgtGMIiwKICAgICAgNCAtPiAi0YHQvtGA0L7QuiIsCiAgICAgIDUgLT4gItC/0Y/RgtGM0LTQtdGB0Y/RgiIsCiAgICAgIDYgLT4gItGI0LXRgdGC0YzQtNC10YHRj9GCIiwKICAgICAgNyAtPiAi0YHQtdC80YzQtNC10YHRj9GCIiwKICAgICAgOCAtPiAi0LLQvtGB0LXQvNGM0LTQtdGB0Y/RgiIsCiAgICAgIDkgLT4gItC00LXQstGP0L3QvtGB0YLQviIKICAgICkKICAgIHZhbCBvbmVzID0gTWFwKAogICAgICAxIC0+ICLQvtC00LjQvSIsCiAgICAgIDIgLT4gItC00LLQsCIsCiAgICAgIDMgLT4gItGC0YDQuCIsCiAgICAgIDQgLT4gItGH0LXRgtGL0YDQtSIsCiAgICAgIDEwIC0+ICLQtNC10YHRj9GC0YwiLAogICAgICAxMSAtPiAi0L7QtNC40L3QsNC00YbQsNGC0YwiLAogICAgICAxMiAtPiAi0LTQstC10L3QsNC00YbQsNGC0YwiLAogICAgICAxMyAtPiAi0YLRgNC40L3QsNC00YbQsNGC0YwiLAogICAgICAxNCAtPiAi0YfQtdGC0YvRgNC90LDQtNGG0LDRgtGMIiwKICAgICAgMTUgLT4gItC/0Y/RgtC90LDQtNGG0LDRgtGMIiwKICAgICAgMTkgLT4gItC00LXQstGP0YLQvdCw0LTRhtCw0YLRjCIKICAgICkKCiAgICB2YWwgcmVtMTAwID0gdmFsdWUgJSAxMDAKICAgIExpc3QoCiAgICAgIHRob3VzYW5kcy5nZXQodmFsdWUgLyAxMDAwKSwKICAgICAgaHVuZHJlZHMuZ2V0KHZhbHVlICUgMTAwMCAvIDEwMCksCiAgICAgIHRlbnMuZ2V0KGlmIChyZW0xMDAgPj0gMjApIHJlbTEwMCAvIDEwIGVsc2UgMCksCiAgICAgIG9uZXMuZ2V0KGlmIChyZW0xMDAgPj0gMjApIHJlbTEwMCAlIDEwIGVsc2UgcmVtMTAwKQogICAgKS5mbGF0dGVuIG1rU3RyaW5nICIgIgogIH0KICAKICBMaXN0KDEsMywxMSwxMCwxMywxNSwxMjEsODE5LDk3MykgZm9yZWFjaCAodj0+cHJpbnRsbihpbnQyc3RyKHYpKSkKfQogIA==