fork download
  1. <?php
  2.  
  3. $input = "2-2*2+5=";
  4. $inputLength = mb_strlen($input);
  5. $number = 0;
  6. $result = 0;
  7. $op = '';
  8.  
  9. for ($i = 0; $i < $inputLength; $i++) {
  10. $char = mb_substr($input, $i, 1);
  11. if ($char == "*" || $char == "+" || $char == "-" || $char == "=") {
  12. echo "op = [$op] result = [$result] number = [$number] char = [$char]\n";
  13. if ($op == "+") {
  14. $result += $number;
  15. } elseif ($op == "-") {
  16. $result -= $number;
  17. } elseif ($op == "*") {
  18. $result *= $number;
  19. }
  20. if ($char == "=") {
  21. if ($op == '') {$result = $number;}
  22. echo $input . $result;
  23. }
  24.  
  25. if (($result == 0) & ($op == '')) {
  26. $result = $number;
  27. }
  28. $op = $char;
  29. $number = 0;
  30. } elseif (is_numeric($char)) {
  31. $number = $number*10 + $char;
  32. } else {
  33. echo "Неверный символ: '$char'\n";
  34. }
  35. }
  36.  
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
op = [] result = [0] number = [2] char = [-]
op = [-] result = [2] number = [2] char = [*]
op = [*] result = [0] number = [2] char = [+]
op = [+] result = [0] number = [5] char = [=]
2-2*2+5=5