| Новости | 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)
}Без лишних итераций и преобразований строк в числа.