class Program { private string num2Roman(int $num) { int $n = $num; string $result = ''; int[] $lookup = {'M' => 1000, 'CM' => 900, 'D' => 500, 'CD' => 400, 'C' => 100, 'XC' => 90, 'L' => 50, 'XL' => 40, 'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1}; int $matches; foreach(string $roman => int $value in $lookup) { $matches = (int) ($n / $value); $result += str_repeat($roman, $matches); $n = $n % $value; } return $result; } public void main() { print(' 7 => ' + $this->num2Roman(7) + "\n"); print(' 9 => ' + $this->num2Roman(9) + "\n"); print(' 11 => ' + $this->num2Roman(11) + "\n"); print(' 42 => ' + $this->num2Roman(42) + "\n"); print(' 105 => ' + $this->num2Roman(105) + "\n"); print('1984 => ' + $this->num2Roman(1984) + "\n"); print('1999 => ' + $this->num2Roman(1999) + "\n"); print('2018 => ' + $this->num2Roman(2018) + "\n"); print('2144 => ' + $this->num2Roman(2144) + "\n"); } }