[URL=#]?[/URL] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (num)=> [ ln = { { "десять " , "одиннадцать " , "двенадцать " , "тринадцать " , "четырнадцать " , "пятнадцать " , "шестнадцать " , "семнадцать " , "восемнадцать " , "девятнадцать " }, { "" , "сто " , "двести " , "триста " , "четыреста " , "пятьсот " , "шетьсот " , "семьсот " , "восемьсот " , "девятьсот " }, { "" , "" , "двадцать " , "тридцать " , "сорок " , "пятьдесят " , "шестьдесят " , "семьдесят " , "восемьдесят " , "девяносто " }, { "" , "один " , "два " , "три " , "четыре " , "пять " , "шесть " , "семь " , "восемь " , "девять " }, { "" , "одна " , "две " , "три " , "четыре " , "пять " , "шесть " , "семь " , "восемь " , "девять " }}, lr = { { "" , "миллиард " , "миллиарда " , "миллиарда " , "миллиарда " , "миллиардов " }, { "" , "миллион " , "миллиона " , "миллиона " , "миллиона " , "миллионов " }, { "" , "тысяча " , "тысячи " , "тысячи " , "тысячи " , "тысяч " }, { "" , " " , " " , " " , " " , " " }}, fn = (n,r)=> [ t = List.Transform(Text.ToList(n), each Number.From(_)), x = ln{1}{t{0}} & (if t{1}<>1 then ln{2}{t{1}} & (if r = 2 then ln{4}{t{2}} else ln{3}{t{2}}) else ln{0}{t{2}}), y = lr{r}{if t{1}=1 then 5 else List.Min({t{2},5})}, z = x&y][z], t = Splitter.SplitTextByRepeatedLengths(3)(Number.ToText(num, "000000000000" )), z = if num = 0 then "ноль" else Text.Combine(List.Transform({0..3},each fn(t{_},_)), "" )][z] |