@ 2017-04-06T16:44:59Z <?php
error_reporting(-1);
$input = '243+6743-78*2=';
$inputLenght = mb_strlen($input);
$number = 0;
$result = 0;
$op = '';
for ($i = 0; $i < $inputLenght; $i++){
$char = mb_substr($input, $i, 1);
if ($char == '+' || $char == '-' || $char == '*' || $char == '='){
if ($op == ''){
reporting($op, $result, $number, $char);
$result = $number;
}else if ($op == '+'){
reporting($op, $result, $number, $char);
$result = $result + $number;
}else if ($op == '-'){
reporting($op, $result, $number, $char);
$result = $result - $number;
}else if ($op == '*'){
reporting($op, $result, $number, $char);
$result = $result * $number;
}
$op = $char;
$number = 0;
} elseif (is_numeric($char)){
$number = $number * 10 + $char;
} else {
echo "Неверный символ: {$char}\n";
}
}
echo "Ответ: {$input}{$result}\n";
function reporting($op, $result, $number, $char){
echo "op = [{$op}], result = [{$result}], number = [{$number}], char = [{$char}]\n";
}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 4.3.0 - 4.3.11 , 4.4.0 - 4.4.9 , 5.0.0 - 5.0.5 , 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 , 5.3.0 - 5.3.29 , 5.4.0 - 5.4.45 , 5.5.0 - 5.5.38 , 5.6.0 - 5.6.38 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.7 op = [], result = [0], number = [243], char = [+]
op = [+], result = [243], number = [6743], char = [-]
op = [-], result = [6986], number = [78], char = [*]
op = [*], result = [6908], number = [2], char = [=]
Ответ: 243+6743-78*2=13816
preferences:dark mode live preview
269.62 ms | 406 KiB | 452 Q