Reverse Polish notation
Обратная польская нотация (ОПН)описание на вики
код PHP
<?php function polish($input){
$input=str_replace(" ","",$input);
for($i=0;$i<strlen($input);$i++){
if(is_numeric($input[$i])){
$stack[]=$input[$i];
}
else {
$n2 = array_pop($stack);
$n1 = array_pop($stack);
switch($input[$i]) {
case '+': $result = $n1 + $n2; break;
case '-': $result = $n1 - $n2; break;
case '*': $result = $n1 * $n2; break;
case '/': $result = $n1 / $n2; break;
default: echo "Ощибка ввода!\n";
}
array_push($stack,$result);
}
}
return array_pop($stack);
}
echo polish("5 8 3 + *");?>
Комментариев нет:
Отправить комментарий