Arabic and Roman numbers


Arabic and Roman numbers

Arabic to Roman converter

Enter arabic number (0 to 3000):

Roman to Arabic converter

Enter roman number (I to MMM):

Code in PHP

Arabic to Roman converter:
if(isset($num)) {
		$ok = true;
		if(strlen($num)>5) 
		{
				print("<br><br><b>Number too big!</b><br>");
				$ok = false;
		}
		else {
			for($i = 0; $i<strlen($num);  $i++)
			{
				if(!($num[$i]>='0' && $num[$i]<='9')) { 
						print "<br><br><b>Incorrect number! (NOT DIGIT)</b><br>";
						$ok = false;
						break;
				}
			}
			if($num>3000) {
				print("<br><br><b>Number too big!</b><br>");
				$ok = false;
			}
		}
		if($ok) {
			$araba = array(1,4,5,9,10,40,50,90,100,400,500,900,1000); 
			$roma = array("I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M");
			$i = 12;
			$romstr = "";
			while ((integer)$num) { 
				while ((integer)$num >= $araba[$i]) { 
						(integer)$num -= $araba[$i]; 
						$romstr.=$roma[$i];
				} 
				$i--; 
			} 
		}
		print("<br>Roman number = $romstr<br>");
	}

Roman to arabic converter:
	$roma = array('M','D','C','L','X','V','I');
	$arab=0;
	if(isset($rom)) {
		$ok = true;
		if(strlen($rom)>9) 
		{
				print("lt;br><br><b>Number too big!</b><br>");
				$ok = false;
		}
		else {
			for($i = 0; $i<strlen($rom);  $i++) {
				for($j=0; $j < 7; $j++) {
					if($rom[$i]==$roma[$j]) { 
						$ok = true;
						break;
					}
					$ok = false;
				}
			}
			if($ok == false) print ("Input ERROR");
		}
		if($ok) {
			$arab_next=0;
			$arab_prev=0;
			for($i = 0; $i<strlen($rom); $i++) {
                switch($rom[$i])
                {
                        case 'I' : $arab_next = 1; 
						break;
                        case 'V' : $arab_next = 5; 
						break;
                        case 'X' : $arab_next = 10; 
						break;
                        case 'L' : $arab_next = 50; 
						break;
                        case 'C' : $arab_next = 100; 
						break;
                        case 'D' : $arab_next = 500; 
						break;
                        case 'M' : $arab_next = 1000; 
						break;
						default:
                }
                if($arab_next<=$arab_prev) {
                        $arab+=$arab_next;
                }
                else {
                               $arab=$arab-2*$arab_prev+$arab_next;
                }
                $arab_prev=$arab_next;
			}
			print("< br>Arabic number = $arab<br>");
		}
	}



Back to main page