search
HomeBackend DevelopmentPHP Tutorial用PHP实现的四则运算表达式计算实现代码_php技巧

PHP实现:

复制代码 代码如下:

/**
* 计算四则运算表达式
*/
error_reporting(E_ALL);
$exp = '(1+2*(3+5)/4)*(3+(5-4)*2)';
$arr_exp = array();
for($i=0;$i$arr_exp[] = $exp[$i];
}
$result = calcexp( array_reverse($arr_exp) );
echo $exp . '=' . $result;
function calcexp( $exp ){
$arr_n = array();
$arr_op = array();
while( ($s = array_pop( $exp )) != '' ){
if( $s == '(' ){
$temp = array(); $quote = 1; $endquote = 0;
while( ($t = array_pop($exp)) != '' ){
if( $t == '(' ){
$quote++;
}
if( $t == ')' ){
$endquote++;
if( $quote == $endquote ){
break;
}
}
array_push($temp, $t);
}
$temp = array_reverse($temp);
array_push($arr_n, calcexp($temp) );
}else if( $s == '*' || $s == '/' ){
$n2 = array_pop($exp);
if( $n2 == '(' ){
$temp = array(); $quote = 1; $endquote = 0;
while( ($t = array_pop($exp)) != '' ){
if( $t == '(' ){
$quote++;
}
if( $t == ')' ){
$endquote++;
if( $quote == $endquote )
break;
}
array_push($temp, $t);
}
$temp = array_reverse($temp);
$n2 = calcexp($temp);
}
$op = $s;
$n1 = array_pop($arr_n);
$result = operation($n1, $op, $n2);
array_push($arr_n, $result);
}elseif( $s == '+' || $s == '-' ){
array_push($arr_op, $s);
}else{
array_push($arr_n, $s);
}
}
$n2 = array_pop($arr_n);
while( ($op = array_pop($arr_op)) != '' ){
$n1 = array_pop($arr_n);
$n2 = operation($n1, $op, $n2);
}
return $n2;
}
function operation( $n1, $op, $n2 ){
switch ($op) {
case '+':
return intval($n1) + intval($n2);
break;
case '-':
return intval($n1) - intval($n2);
break;
case '*':
return intval($n1) * intval($n2);
break;
case '/':
return intval($n1) / intval($n2);
break;
}
}

这个实现方式中使用了两个堆栈,一个用来存储数字,一个用来存储运算符,遇到括号以后就递归进入括号内运算,实现方式有点笨拙,后面补充一下“逆波兰表达式”的算法实现。
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何解决Python的表达式语法错误?如何解决Python的表达式语法错误?Jun 24, 2023 pm 05:04 PM

Python作为一种高级编程语言,易于学习和使用。一旦需要编写Python程序时,无法避免地遇到语法错误,表达式语法错误是常见的一种。在本文中,我们将讨论如何解决Python的表达式语法错误。表达式语法错误是Python中最常见的错误之一,它通常是由于错误的使用语法或缺少必要组件而导致的。在Python中,表达式通常由数字、字符串、变量和运算符组成。最常见的

在C和C++中,逗号(comma)的用法是用来分隔表达式或语句在C和C++中,逗号(comma)的用法是用来分隔表达式或语句Sep 09, 2023 pm 05:33 PM

在C或C++中,逗号“,”有不同的用途。在这里我们将了解如何使用它们。逗号作为运算符。逗号运算符是一个二元运算符,它计算第一个操作数,然后丢弃结果,然后计算第二个操作数并返回值。逗号运算符在C或C++中的优先级最低。示例#include<stdio.h>intmain(){&nbsp;&nbsp;intx=(50,60);&nbsp;&nbsp;inty=(func1(),func2());}这里60将被分配给x。对于下一条语句,将首先执行func1(

用Go语言编写的四则运算库:简单高效的数学计算工具用Go语言编写的四则运算库:简单高效的数学计算工具Dec 23, 2023 am 11:49 AM

用Go语言编写的四则运算库:简单高效的数学计算工具随着计算机技术的不断进步,数学计算在我们日常生活和工作中扮演着越来越重要的角色。无论是进行复杂的数据分析,还是进行简单的数据处理,数学计算都是不可或缺的一环。为了提高计算效率和准确度,我们需要依赖于高质量的数学计算工具。而Go语言作为一门现代化、高性能的编程语言,提供了丰富而强大的工具来进行数学运算。本文将介

介绍C语言中的指数函数表达式介绍C语言中的指数函数表达式Feb 18, 2024 pm 01:11 PM

C语言中指数函数表达式的写法介绍及代码示例什么是指数函数指数函数是数学中一类常见的函数,可以表示为f(x)=a^x的形式,其中a为底数,x为指数。指数函数主要用于描述指数增长或指数衰减的情况。指数函数的代码示例在C语言中,我们可以使用数学库中的pow()函数来计算指数函数,下面是一个示例程序:#include

Go语言四则运算的简单入门指南Go语言四则运算的简单入门指南Feb 19, 2024 pm 12:18 PM

入门指南:从零开始学习Go语言四则运算的实现步骤Go语言作为一种简洁、高效的编程语言,越来越受到程序员们的喜爱。在Go语言中实现四则运算并不复杂,本文将从零开始,一步步地引导您学习Go语言中如何实现四则运算。本文将包括具体的代码示例,帮助您更好地理解每个步骤的实现方式。步骤一:创建一个新的Go语言项目首先,我们需要创建一个新的Go语言项目。在命令行中执行以下

使用Go语言实现一个基本的算术运算器使用Go语言实现一个基本的算术运算器Dec 23, 2023 pm 02:52 PM

Go语言是一种开源的、静态类型的编译型语言,以其简洁、高效和易于扩展的特性而受到广泛关注和使用。本文将介绍如何使用Go语言编写一个简单的四则运算计算器,并提供具体的代码示例。首先,我们需要定义几个基本的数据结构来表示运算表达式和操作符。我们可以使用结构体来表示运算符和操作数,并使用枚举类型来限制运算符的取值范围。typeOperatorintcons

Java 中的 lambda 表达式Java 中的 lambda 表达式Jun 09, 2023 am 10:17 AM

Java中的lambda表达式随着Java8的发布,lambda表达式成为了Java开发者们最为关注和讨论的话题之一。Lambda表达式可以简化Java程序员繁琐的书写方式,同时也能够提高程序的可读性和维护性。在本文中,我们将深入探讨Java中的lambda表达式,以及它们如何在Java代码中提供更简单、更直观的编程体验。

Go语言如何实现四则运算Go语言如何实现四则运算Dec 21, 2023 pm 04:46 PM

在Go语言中,四则运算是通过基本的算术运算符来实现的。常用的四则运算操作:1、加法(+): 用于将两个数相加;2、减法(-): 用于将第二个数从第一个数中减去;3、乘法(*): 用于将两个数相乘;4、除法(/): 用于将第一个数除以第二个数。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment