返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php实现四则运算的方法
  • 553
分享到

php实现四则运算的方法

2023-06-09 09:06:46 553人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关PHP实现四则运算的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php实现四则运算的方法:首先创建一个PHP示例文件;然后声明数字栈和符号栈;接着把运算串分解成每个字符到$arr数

这篇文章给大家分享的是有关PHP实现四则运算的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

php实现四则运算的方法:首先创建一个PHP示例文件;然后声明数字栈和符号栈;接着把运算串分解成每个字符到$arr数组;最后通过“function calc(&$num_arr, &$op_arr){}”等方法实现四则运算即可。

php实现一个简单的四则运算计算器(还不支持括号的优先级)。利用栈这种数据结构来计算表达式很赞。

这里可以使用栈的结构,由于php的数组“天然”就有栈的特性,这里直接就利用了数组。当然可以使用栈结构写,道理一样的。

前辈(波兰一位科学家)在计算带有括号的四则表达式,利用逆波兰算法(后缀表达法)。简直神了!!其实代码code并不难,难的是算法的指导,要先理解算法,才能编码。

<?php$num_arr = array();// 声明数字栈$op_arr = array();// 声明符号栈$str = "10+6*2-18/2-2";preg_match_all('/./', $str, $arr);// 把运算串分解成每个字符到$arr数组$str_arr = $arr[0];$length = count($str_arr);$pre_num = '';// 开始入栈for($i=0; $i<$length; $i++){  $val = $str_arr[$i];  // 数字  if (is_numeric($val)){    $pre_num .= $val;// 兼顾下一个字符可能也是数字的情况(多位数)    if($i+1>=$length || isOper($str_arr[$i+1])){// 下一个是运算符或者到头了,则把数字塞进数字栈      array_push($num_arr, $pre_num);      $pre_num = '';    }  // 符号判断优先级,选择是否入栈  } else if (isOper($val)){    if (count($op_arr)>0){      // 判断优先级,只要不大于符号栈顶的优先级,就开始计算,直到优先级大于了栈顶的,计算后才再把这个运算符入栈      while (end($op_arr) && priority($val) <= priority(end($op_arr))){        calc($num_arr, $op_arr);      }    }    array_push($op_arr, $val);  }}//echo '<pre>';//print_r($num_arr);//print_r($op_arr);// 计算栈里剩余的while(count($num_arr)>0){  calc($num_arr, $op_arr);  if (count($num_arr)==1){    $result = array_pop($num_arr);    break;  }}echo $str,' = ', $result;// 计算,获取数字栈的两个数,符号栈顶的运算符function calc(&$num_arr, &$op_arr){  if (count($num_arr)>0){    $num1 = array_pop($num_arr);    $num2 = array_pop($num_arr);    $op = array_pop($op_arr);    if ($op=='*') $re = $num1*$num2;    if ($op=='/') $re = $num2/$num1;// 这里注意顺序,栈是先进后出,所以$num2是被除数    if ($op=='+') $re = $num2+$num1;    if ($op=='-') $re = $num2-$num1;    array_push($num_arr, $re);  }}// 获取优先级function priority($str){  if ($str == '*' || $str == '/'){    return 1;  } else {    return 0;  }}// 判断是否是运算符function isOper($oper){  $oper_array = array('+','-','*','/');  if (in_array($oper, $oper_array)){    return true;  }  return false;}

运行结果:

10+6*2-18/2-2 = 11

感谢各位的阅读!关于“php实现四则运算的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: php实现四则运算的方法

本文链接: https://lsjlt.com/news/255459.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • php实现四则运算的方法
    这篇文章给大家分享的是有关php实现四则运算的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php实现四则运算的方法:首先创建一个PHP示例文件;然后声明数字栈和符号栈;接着把运算串分解成每个字符到$arr数...
    99+
    2023-06-09
  • php四则运算怎么实现
    在PHP中,可以使用基本的数学运算符(+,-,*,/)来实现四则运算。以下是一个示例代码,演示了如何实现四则运算:```php```...
    99+
    2023-08-24
    php
  • shell实现四则运算简单方法
    1.简单方法 $ b=$((5*5+5-3/2)) $ echo $b29 在linux shell中,我们可以使用 $(()) 将表达式放在括号中,即可达到运算的功能。 2.其它方法: 用:expr...
    99+
    2022-06-04
    简单 方法 shell
  • Go语言基础教程:四则运算的实现方法
    Go语言基础教程:四则运算的实现方法,需要具体代码示例引言:Go语言作为一门开发云原生应用的编程语言,受到越来越多开发者的青睐。作为学习Go语言的初学者,掌握基本的运算操作是必不可少的。本文将介绍Go语言下实现四则运算的基本方法,并提供具体...
    99+
    2023-12-23
    Go语言 基础教程 四则运算
  • Python实现简单的四则运算计算器
    一、算法 1、算法的主要思想就是将一个中缀表达式(Infix expression)转换成便于处理的后缀表达式(Postfix expression),然后借助于栈这个简单的数据结构,计算出表达式...
    99+
    2022-06-04
    计算器 简单 Python
  • JavaScript实现计算器的四则运算功能
    目录一、需求 + 最终实现1. 需求2. 说明:利用了字符串(split、replace)和数组(splice)的方法。3. 代码实现二、实现步骤1. 版本一:实现基础加减乘除2. ...
    99+
    2024-04-02
  • shell中怎么实现四则运算
    本篇文章为大家展示了shell中怎么实现四则运算,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.简单方法代码如下:$ b=$((5*5+5-3/2)) $ echo $b29 在linux she...
    99+
    2023-06-09
  • C#怎么实现计算器四则运算
    这篇文章主要讲解了“C#怎么实现计算器四则运算”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么实现计算器四则运算”吧!初始化,实现四则运算using System;using...
    99+
    2023-06-29
  • Go语言如何实现四则运算
    在Go语言中,四则运算是通过基本的算术运算符来实现的。常用的四则运算操作:1、加法(+): 用于将两个数相加;2、减法(-): 用于将第二个数从第一个数中减去;3、乘法(*): 用于将两个数相乘;4、除法(/): 用于将第一个数除以第二个数...
    99+
    2023-12-21
    go语言 四则运算
  • 实现一个【伪】四则运算封闭的符号运算和
    最后的效果: if __name__ == '__main__': import doctest doctest.testmod() x = Symbols("x") print(x * 2 + 1 == ...
    99+
    2023-01-31
    符号
  • python四则运算表达式求值的方法
    这篇文章主要讲解了“python四则运算表达式求值的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python四则运算表达式求值的方法”吧!四则运算表达式求值思路说明使用双栈来实现&am...
    99+
    2023-07-02
  • JavaScript如何实现计算器的四则运算功能
    小编给大家分享一下JavaScript如何实现计算器的四则运算功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、需求 + 最终实现注:只是前端实现1. 需求需...
    99+
    2023-06-29
  • gojson编译原理XJSON实现四则运算
    目录前言转义字符性能优化实现四则运算总结前言 在上一篇中介绍了xjson的功能特性以及使用查询语法快速方便的获取JSON中的值。 同时这次也更新了一个版本,主要是两个升级: 对转义...
    99+
    2024-04-02
  • golang 四则运算计算器yacc归约手写实现
    目录缘起目标难点总体流程main.gotokens/tokens.gostates/states.golexer/lexer.goparser/tStackNode.goparser...
    99+
    2024-04-02
  • Java实现四则混合运算代码示例
    使用栈来实现,可以处理运算优先级。使用自然四则运算表达式即可,如:4+(3*(3-1)+2)/2。无需把表达式先转换为逆波兰等形式。package com.joshua.cal; import java.util.Collections; ...
    99+
    2023-05-31
    java 四则运算 ava
  • python的简单四则运算语法树可视化怎么实现
    本文小编为大家详细介绍“python的简单四则运算语法树可视化怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“python的简单四则运算语法树可视化怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。简...
    99+
    2023-07-05
  • go面向对象方式操作JSON库实现四则运算
    目录前言面向对象的方式操作 JSON实现原理对 JSON 做四则运算总结前言 在之前实现的 JSON 解析器中当时只实现了将一个 JSON 字符串转换为一个&nb...
    99+
    2024-04-02
  • Android随机给出加减乘除的四则运算方法
    这篇文章主要介绍“Android随机给出加减乘除的四则运算方法”,在日常操作中,相信很多人在Android随机给出加减乘除的四则运算方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android随机给出加减...
    99+
    2023-06-30
  • python的简单四则运算语法树可视化
    目录简单四则运算语法树可视化解析 AST粗糙的遍历方法渲染显示主流的遍历方法完整代码说明简单四则运算语法树可视化 前几天有一篇博客是关于四则运算和二叉树的,我是把四则运算用二叉树写出...
    99+
    2023-05-14
    python四则运算 python四则运算语法树 python语法树可视化
  • 功能强大:用Go语言实现四则运算,轻松应对复杂运算需求
    标题:功能强大:用Go语言实现四则运算,轻松应对复杂运算需求 随着计算机领域的发展,四则运算作为最基本的数学运算之一,常常在各类软件开发中被广泛使用。为了更好地满足复杂运算需求,许多开...
    99+
    2024-02-26
    go语言 四则运算 复杂需求
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作