Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
G_Z 07.04.2017 16:39
@roman2num[s][locals] $result(0) $s[^s.upper[]] $length(^s.length[]) $nums[ $.M(1000) $.D(500) $.C(100) $.L(50) $.X(10) $.V(5) $.I(1) ] # reverse $s string $s[^for[i](1;$length){^s.mid($length-$i;1)}] $last(0) ^for[i](0;$length - 1){ $current[^s.mid($i;1)] ^if($nums.$current >= $last){ $result($result + $nums.$current) }{ $result($result - $nums.$current) } $last($nums.$current) }Без лишних итераций и преобразований строк в числа.