parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

И обратно из римских в арабские

Maxx 07.04.2017 14:07 / 07.04.2017 14:08

@roman2num[s][locals]
$result(0)
$s[^s.upper[]]
$nums[^hash::create[
	$.M[1000]
	$.D[500]
	$.C[100]
	$.L[50]
	$.X[10]
	$.V[5]
	$.I[1]
]]
# reverse $s string 
$s[^for[i](0;^s.length[]){^s.mid(^s.length[]-$i;1)}]

$last(0)

^for[i](0;^s.length[]){
	$current[^s.mid($i;1)]
	^if($nums.$current >= $last){
		$result($result + $nums.$current)
	}{
		$result($result - $nums.$current)
	}
	$last($nums.$current)
}

^roman2num[CXXI] => 121